Module: EventsManager
- Defined in:
- lib/events_manager.rb,
lib/events_manager/event.rb,
lib/events_manager/settings.rb,
lib/events_manager/removed_record.rb,
lib/events_manager/updated_record.rb,
lib/events_manager/hooks/add_assets.rb,
lib/events_manager/patches/issue_patch.rb,
lib/events_manager/patches/journal_patch.rb,
lib/events_manager/patches/test_case_patch.rb,
lib/events_manager/patches/time_entry_patch.rb,
lib/events_manager/patches/issue_relation_patch.rb,
lib/events_manager/patches/repository/git_patch.rb
Defined Under Namespace
Modules: Hooks, Patches Classes: Event, RemovedRecord, Settings, UpdatedRecord
Constant Summary collapse
- EVENT_EXCEPTION_ATTRIBUTES =
{ event_entity: proc { |e, _l, _ex| e.entity.name }, event_action: proc { |e, _l, _ex| e.action.to_s }, event_data: proc { |e, _l, _ex| e.data.to_yaml }, listener_class: proc { |_e, l, _ex| l.class.name }, listener_instance: proc { |_e, l, _ex| l.to_s }, exception_class: proc { |_e, _l, ex| ex.class.name }, exception_message: proc { |_e, _l, ex| ex. }, exception_stack: proc { |_e, _l, ex| ex.backtrace.join("\n") } }.freeze
Class Attribute Summary collapse
-
.delay_disabled ⇒ Object
Returns the value of attribute delay_disabled.
-
.log_exceptions_disabled ⇒ Object
Returns the value of attribute log_exceptions_disabled.
Class Method Summary collapse
- .add_listener(entity, action, listener) ⇒ Object
- .all_listeners ⇒ Object
- .trigger(entity, action, data) ⇒ Object
Class Attribute Details
.delay_disabled ⇒ Object
Returns the value of attribute delay_disabled.
5 6 7 |
# File 'lib/events_manager.rb', line 5 def delay_disabled @delay_disabled end |
.log_exceptions_disabled ⇒ Object
Returns the value of attribute log_exceptions_disabled.
5 6 7 |
# File 'lib/events_manager.rb', line 5 def log_exceptions_disabled @log_exceptions_disabled end |
Class Method Details
.add_listener(entity, action, listener) ⇒ Object
18 19 20 21 22 |
# File 'lib/events_manager.rb', line 18 def add_listener(entity, action, listener) return if listeners(entity, action).include?(listener) listeners(entity, action) << listener.to_s end |
.all_listeners ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'lib/events_manager.rb', line 33 def all_listeners r = [] @listeners.each_value do |e| e.each_value do |a| r += a end end r.uniq end |
.trigger(entity, action, data) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/events_manager.rb', line 24 def trigger(entity, action, data) event = EventsManager::Event.new(entity, action, data) Rails.logger.debug("Event triggered: #{event}") listeners(entity, action).each do |l| Rails.logger.debug("Listener found: #{l}") run_delayed_listener(event, l.constantize.new(event)) end end |