Module: Atr::Publishable::ClassMethods
- Defined in:
- lib/atr/publishable.rb
Instance Method Summary collapse
- #build_publication_scope_for_record(record) ⇒ Object
- #build_routing_key_for_record_action(record, action_routing_key) ⇒ Object
- #publication_scope(*args) ⇒ Object
- #publishable_actions(*actions) ⇒ Object
- #resource_action_routing_key(action_routing_key) ⇒ Object
- #resource_action_routing_keys(action_routing_key) ⇒ Object
- #resource_routing_keys ⇒ Object
- #routing_key ⇒ Object
- #scope_publication? ⇒ Boolean
Instance Method Details
#build_publication_scope_for_record(record) ⇒ Object
78 79 80 81 82 83 84 |
# 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) ⇒ Object
73 74 75 76 |
# 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) ⇒ Object
86 87 88 |
# File 'lib/atr/publishable.rb', line 86 def publication_scope(*args) self.publication_scopes = args end |
#publishable_actions(*actions) ⇒ Object
53 54 55 |
# File 'lib/atr/publishable.rb', line 53 def publishable_actions(*actions) @publishable_actions = actions end |
#resource_action_routing_key(action_routing_key) ⇒ Object
69 70 71 |
# 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) ⇒ Object
65 66 67 |
# 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 ⇒ Object
61 62 63 |
# File 'lib/atr/publishable.rb', line 61 def resource_routing_keys name.split("::").map(&:underscore) end |
#routing_key ⇒ Object
57 58 59 |
# File 'lib/atr/publishable.rb', line 57 def routing_key resource_routing_keys.join(".") end |
#scope_publication? ⇒ Boolean
90 91 92 |
# File 'lib/atr/publishable.rb', line 90 def scope_publication? publication_scopes.present? end |