class Eventifier::EventBuilder

Attributes

groupable[R]
object[R]
options[R]
user[R]
verb[R]

Public Class Methods

new(object, user, verb, groupable, options) click to toggle source
# File lib/eventifier/event_builder.rb, line 6
def initialize(object, user, verb, groupable, options)
  @object, @user, @verb, @groupable, @options = object, user, verb,
    groupable, options
end
store(object, user, verb, groupable = nil, options = {}) click to toggle source
# File lib/eventifier/event_builder.rb, line 2
def self.store(object, user, verb, groupable = nil, options = {})
  new(object, user, verb, groupable || object, options).store
end

Public Instance Methods

store() click to toggle source
# File lib/eventifier/event_builder.rb, line 11
def store
  Eventifier::Event.create user: user, eventable: object,
    groupable: groupable, verb: verb, change_data: change_data,
    system: options[:system]
end

Private Instance Methods

change_data() click to toggle source
# File lib/eventifier/event_builder.rb, line 21
def change_data
  return options[:change_data] unless options[:change_data].nil?

  changes = object.changes.stringify_keys

  changes.reject! { |attribute, value|
    options[:except].include?(attribute)
  } if options[:except]

  changes.select! { |attribute, value|
    options[:only].include?(attribute)
  } if options[:only]

  changes.symbolize_keys
end