Class: Woodhouse::QueueCriteria

Inherits:
Object
  • Object
show all
Defined in:
lib/woodhouse/queue_criteria.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ QueueCriteria

Returns a new instance of QueueCriteria.



6
7
8
9
10
11
12
13
# File 'lib/woodhouse/queue_criteria.rb', line 6

def initialize(opts = {})
  if opts.kind_of?(self.class)
    opts = opts.criteria
  end
  unless opts.nil?
    @criteria = stringify_values(opts).freeze
  end
end

Instance Attribute Details

#criteriaObject (readonly)

Returns the value of attribute criteria.



4
5
6
# File 'lib/woodhouse/queue_criteria.rb', line 4

def criteria
  @criteria
end

Instance Method Details

#==(other) ⇒ Object



15
16
17
# File 'lib/woodhouse/queue_criteria.rb', line 15

def ==(other)
  @criteria == other.criteria
end

#amqp_headersObject



23
24
25
26
# File 'lib/woodhouse/queue_criteria.rb', line 23

def amqp_headers
  # TODO: needs to be smarter
  @criteria ? @criteria.merge('x-match' => 'all') : {}
end

#describeObject



19
20
21
# File 'lib/woodhouse/queue_criteria.rb', line 19

def describe
  @criteria.inspect
end

#matches?(args) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
37
38
39
# File 'lib/woodhouse/queue_criteria.rb', line 34

def matches?(args)
  return true if @criteria.nil?
  @criteria.all? do |key, val|
    args[key] == val
  end
end

#queue_keyObject



28
29
30
31
32
# File 'lib/woodhouse/queue_criteria.rb', line 28

def queue_key
  @criteria ? @criteria.map{|k,v|
    "#{k.downcase}_#{v.downcase}"
  }.join("_") : ""
end