Module: Pebbles::River::Routing

Defined in:
lib/pebbles/river/routing.rb

Class Method Summary collapse

Class Method Details

.binding_routing_keys_for(options) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/pebbles/river/routing.rb', line 15

def self.binding_routing_keys_for(options)
  options.assert_valid_keys(:path, :class, :event)
  keys = []
  element_to_routing_key_parts(options[:event]).each do |event|
    element_to_routing_key_parts(options[:class]).each do |klass|
      element_to_routing_key_parts(options[:path]).each do |pathspec|
        path_to_routing_key_parts(pathspec).each do |path|
          keys << [event, klass, path].join('._.')
        end
      end
    end
  end
  keys
end

.routing_key_for(options) ⇒ Object

Raises:

  • (ArgumentError)


5
6
7
8
9
10
11
12
13
# File 'lib/pebbles/river/routing.rb', line 5

def self.routing_key_for(options)
  options.assert_valid_keys(:uid, :event)
  raise ArgumentError.new(':event is required') unless options[:event]
  raise ArgumentError.new(':uid is required') unless options[:uid]

  uid = Pebblebed::Uid.new(options[:uid])
  key = [options[:event], uid.klass, uid.path].compact
  key.join('._.')
end