require 'ganymed/websocket'

module Ganymed
  class Websocket
    class Filter
      def initialize(spec)
        @spec = spec
      end

      def match?(event)
        @spec.map do |skey, svalue|
          evalue = event.send(skey.to_sym)
          case svalue
          when String
            svalue == evalue
          when Array
            svalue.include?(evalue)
          end
        end.all?
      end
    end
  end
end