class MongoModel::Observer
Protected Instance Methods
add_observer!(klass)
click to toggle source
Calls superclass method
# File lib/mongomodel/concerns/observing.rb, line 14 def add_observer!(klass) super define_callbacks(klass) end
define_callbacks(klass)
click to toggle source
# File lib/mongomodel/concerns/observing.rb, line 19 def define_callbacks(klass) observer = self observer_name = observer.class.name.underscore.gsub('/', '__') MongoModel::Callbacks::CALLBACKS.each do |callback| next unless respond_to?(callback) callback_meth = :"_notify_#{observer_name}_for_#{callback}" unless klass.respond_to?(callback_meth) klass.send(:define_method, callback_meth) do |&block| observer.update(callback, self, &block) end klass.send(callback, callback_meth) end end end
observed_classes()
click to toggle source
Calls superclass method
# File lib/mongomodel/concerns/observing.rb, line 9 def observed_classes klasses = super klasses + klasses.map { |klass| klass.descendants }.flatten end