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