module ModelObserver::ActiveRecord

Public Class Methods

enable() click to toggle source
# File lib/model_observer/active_record3.rb, line 4
def enable
  require 'active_record'
  require 'model_observer/querying'
  overwrite_instantiate
end
instantiate(record) click to toggle source
# File lib/model_observer/active_record3.rb, line 14
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
overwrite_instantiate() click to toggle source
# 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