Module: LazyObservers
- Defined in:
- lib/lazy_observers.rb,
lib/lazy_observers.rb,
lib/lazy_observers/version.rb
Defined Under Namespace
Modules: InheritedDebugger, InheritedNotifier
Constant Summary
collapse
- VERSION =
'0.0.2'
Class Method Summary
collapse
Class Method Details
.check_classes ⇒ Object
to check you did not specify a class that does not exist
28
29
30
|
# File 'lib/lazy_observers.rb', line 28
def self.check_classes
observers.values.flatten.uniq.each { |klass| klass.constantize }
end
|
.debug_active_record_loading ⇒ Object
32
33
34
|
# File 'lib/lazy_observers.rb', line 32
def self.debug_active_record_loading
ActiveRecord::Base.send(:extend, LazyObservers::InheritedDebugger)
end
|
.on_load(class_name, &block) ⇒ Object
22
23
24
25
|
# File 'lib/lazy_observers.rb', line 22
def self.on_load(class_name, &block)
on_loads[class_name] ||= []
on_loads[class_name] << block
end
|
.register_observed(klass) ⇒ Object
6
7
8
9
10
11
12
13
|
# File 'lib/lazy_observers.rb', line 6
def self.register_observed(klass)
class_name = klass.name
loaded << [klass, class_name]
observers.each do |observer, observed|
connect!(observer, klass) if observed.include?(class_name)
end
(on_loads[class_name]||[]).each{|block| block.call(klass) }
end
|
.register_observer(observer, classes) ⇒ Object
15
16
17
18
19
20
|
# File 'lib/lazy_observers.rb', line 15
def self.register_observer(observer, classes)
observers[observer] = classes
loaded.each do |klass, name|
connect!(observer, klass) if classes.include?(name)
end
end
|