Module: ModelObserver::ActiveRecord

Defined in:
lib/model_observer/active_record3.rb,
lib/model_observer/active_record4.rb

Class Method Summary collapse

Class Method Details

.enableObject



4
5
6
7
8
# File 'lib/model_observer/active_record3.rb', line 4

def enable
  require 'active_record'
  require 'model_observer/querying'
  overwrite_instantiate
end

.overwrite_instantiateObject



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/model_observer/active_record3.rb', line 10

def overwrite_instantiate
  ::ActiveRecord::Inheritance::ClassMethods.class_eval do
    alias_method :origin_instantiate, :instantiate

    def instantiate(record)
      started_at = Time.now
      instance = origin_instantiate(record)
      ModelObserver::Collector.add_metric(ModelObserver::Metric.new(instance, started_at, Time.now))
      instance
    end
  end
end