class Eventifier::EventTranslator

Attributes

event[R]

Public Class Methods

new(*args) click to toggle source
# File lib/eventifier/event_translator.rb, line 2
def initialize(*args)
  @event = ActiveSupport::Notifications::Event.new *args
end

Public Instance Methods

translate() click to toggle source
# File lib/eventifier/event_translator.rb, line 6
def translate
  return unless conditional_call

  Eventifier::EventBuilder.store payload[:object], user, payload[:event],
    groupable, options.except(:if, :unless)
end

Private Instance Methods

conditional() click to toggle source
# File lib/eventifier/event_translator.rb, line 19
def conditional
  options[:if] || options[:unless]
end
conditional_call() click to toggle source
# File lib/eventifier/event_translator.rb, line 23
def conditional_call
  if options[:if]
    conditional.call payload[:object]
  elsif options[:unless]
    !conditional.call payload[:object]
  else
    true
  end
end
groupable() click to toggle source
# File lib/eventifier/event_translator.rb, line 33
def groupable
  payload[:group_by] ? relationship(payload[:group_by]) : payload[:object]
end
options() click to toggle source
# File lib/eventifier/event_translator.rb, line 37
def options
  payload[:options] || {}
end
relationship(key) click to toggle source
# File lib/eventifier/event_translator.rb, line 41
def relationship(key)
  Eventifier::Relationship.new(payload[:object], key).users.first
end
user() click to toggle source
# File lib/eventifier/event_translator.rb, line 45
def user
  payload[:user] ? relationship(payload[:user]) : payload[:object].user
end