Sha256: 0cad63a9df5f11c1646112b8791576a2532b081b767daa0c3ae7d60bbe4bda7a

Contents?: true

Size: 423 Bytes

Versions: 7

Compression:

Stored size: 423 Bytes

Contents

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 Array
            svalue.include?(evalue)
          else
            svalue == evalue
          end
        end.all?
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ganymed-0.3.4 lib/ganymed/websocket/filter.rb
ganymed-0.3.3 lib/ganymed/websocket/filter.rb
ganymed-0.3.2 lib/ganymed/websocket/filter.rb
ganymed-0.3.1 lib/ganymed/websocket/filter.rb
ganymed-0.3.0 lib/ganymed/websocket/filter.rb
ganymed-0.2.3 lib/ganymed/websocket/filter.rb
ganymed-0.2.2 lib/ganymed/websocket/filter.rb