Module: RedmineEventsManager

Defined in:
lib/redmine_events_manager.rb,
lib/redmine_events_manager/event.rb,
lib/redmine_events_manager/version.rb,
lib/redmine_events_manager/settings.rb,
lib/redmine_events_manager/test_config.rb,
lib/redmine_events_manager/removed_record.rb,
lib/redmine_events_manager/updated_record.rb,
lib/redmine_events_manager/hooks/add_assets.rb,
lib/redmine_events_manager/patches/issue_patch.rb,
lib/redmine_events_manager/patches/journal_patch.rb,
lib/redmine_events_manager/patches/test_case_patch.rb,
lib/redmine_events_manager/patches/time_entry_patch.rb,
lib/redmine_events_manager/patches/issue_relation_patch.rb,
lib/redmine_events_manager/patches/repository/git_patch.rb

Defined Under Namespace

Modules: Hooks, Patches, Version Classes: Event, RemovedRecord, Settings, TestConfig, 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.message },
  exception_stack: proc { |_e, _l, ex| ex.backtrace.join("\n") }
}.freeze
AUTHOR =
'Eduardo Henrique Bogoni'
HOMEPAGE =
'https://github.com/esquilo-azul/redmine_events_manager'
SUMMARY =
'Management for events'
VERSION =
'0.5.2'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.delay_disabledObject

Returns the value of attribute delay_disabled.



7
8
9
# File 'lib/redmine_events_manager.rb', line 7

def delay_disabled
  @delay_disabled
end

.log_exceptions_disabledObject

Returns the value of attribute log_exceptions_disabled.



7
8
9
# File 'lib/redmine_events_manager.rb', line 7

def log_exceptions_disabled
  @log_exceptions_disabled
end

Class Method Details

.add_listener(entity, action, listener) ⇒ Object



20
21
22
23
24
# File 'lib/redmine_events_manager.rb', line 20

def add_listener(entity, action, listener)
  return if listeners(entity, action).include?(listener)

  listeners(entity, action) << listener.to_s
end

.all_listenersObject



35
36
37
38
39
40
41
42
43
# File 'lib/redmine_events_manager.rb', line 35

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



26
27
28
29
30
31
32
33
# File 'lib/redmine_events_manager.rb', line 26

def trigger(entity, action, data)
  event = RedmineEventsManager::Event.new(entity, action, data)
  Rails.logger.debug("Event triggered: #{event}") # rubocop:disable Rails/EagerEvaluationLogMessage
  listeners(entity, action).each do |l|
    Rails.logger.debug("Listener found: #{l}") # rubocop:disable Rails/EagerEvaluationLogMessage
    run_delayed_listener(event, l.constantize.new(event))
  end
end