Module: EventCounter::ActiveRecordExtension::ClassMethods

Defined in:
lib/event_counter/active_record_extension.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#has_counter(name, interval: :day) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/event_counter/active_record_extension.rb', line 13

def has_counter(name, interval: :day)
  event_counters[name] = interval

  clause = { name: name.to_s }

  if ActiveRecord::VERSION::MAJOR > 3
    has_many name,
      -> { where(clause) }, as: :countable, class_name: 'EventCounter'
  else
    has_many name,
      conditions: clause, as: :countable, class_name: 'EventCounter'
  end
  include CountableInstanceMethods
  extend  CountableClassMethods
end