module BestBoy::Eventable

Public Instance Methods

trigger_best_boy_event(type, source = nil) click to toggle source
# File lib/best_boy/eventable.rb, line 29
def trigger_best_boy_event type, source = nil
  create_best_boy_event_with_type(type, source)
end
trigger_best_boy_event_report(klass: self.class.to_s, type: '', source: nil, date: Time.zone.now) click to toggle source
# File lib/best_boy/eventable.rb, line 33
def trigger_best_boy_event_report(klass: self.class.to_s, type: '', source: nil, date: Time.zone.now)
  BestBoy::MonthReport.current_or_create_for(klass, type, source, date).increment!(:occurrences)
  BestBoy::DayReport.current_or_create_for(klass, type, source, date).increment!(:occurrences)
end

Private Instance Methods

create_best_boy_event_with_type(type, source = nil) click to toggle source
# File lib/best_boy/eventable.rb, line 50
def create_best_boy_event_with_type(type, source = nil)
  raise "nil event is not allowed" if type.blank?
  best_boy_event = BestBoy::Event.new do |bbe|
    bbe.event        = type
    bbe.event_source = source
    bbe.owner        = self
  end
  best_boy_event.save

  trigger_best_boy_event_report(type: type, source: source) if source.present?
  trigger_best_boy_event_report(type: type, source: nil)
end
trigger_best_boy_create_event() click to toggle source
# File lib/best_boy/eventable.rb, line 40
def trigger_best_boy_create_event
  return if self.class.best_boy_disable_callbacks
  create_best_boy_event_with_type "create"
end
trigger_best_boy_destroy_event() click to toggle source
# File lib/best_boy/eventable.rb, line 45
def trigger_best_boy_destroy_event
  return if self.class.best_boy_disable_callbacks
  create_best_boy_event_with_type "destroy"
end