module Atr::Publishable::ClassMethods
Public Instance Methods
build_publication_scope_for_record(record)
click to toggle source
# File lib/atr/publishable.rb, line 78 def build_publication_scope_for_record(record) publication_scopes.map do |arg| key = arg.to_s.split("_id").first value = record.__send__(arg) [key, value] end.try(:flatten) end
build_routing_key_for_record_action(record, action_routing_key)
click to toggle source
# File lib/atr/publishable.rb, line 73 def build_routing_key_for_record_action(record, action_routing_key) publication_scope_routing_keys = build_publication_scope_for_record(record) [publication_scope_routing_keys, resource_routing_keys, action_routing_key].flatten.join(".") end
publication_scope(*args)
click to toggle source
# File lib/atr/publishable.rb, line 86 def publication_scope(*args) self.publication_scopes = args end
publishable_actions(*actions)
click to toggle source
# File lib/atr/publishable.rb, line 53 def publishable_actions(*actions) @publishable_actions = actions end
resource_action_routing_key(action_routing_key)
click to toggle source
# File lib/atr/publishable.rb, line 69 def resource_action_routing_key(action_routing_key) resource_action_routing_keys(action_routing_key).join(".") end
resource_action_routing_keys(action_routing_key)
click to toggle source
# File lib/atr/publishable.rb, line 65 def resource_action_routing_keys(action_routing_key) [resource_routing_keys, action_routing_key] end
resource_routing_keys()
click to toggle source
# File lib/atr/publishable.rb, line 61 def resource_routing_keys name.split("::").map(&:underscore) end
routing_key()
click to toggle source
# File lib/atr/publishable.rb, line 57 def routing_key resource_routing_keys.join(".") end
scope_publication?()
click to toggle source
# File lib/atr/publishable.rb, line 90 def scope_publication? publication_scopes.present? end