Module: LazyObservers
- Defined in:
- lib/lazy_observers.rb,
lib/lazy_observers/railtie.rb,
lib/lazy_observers/version.rb
Defined Under Namespace
Modules: InheritedDebugger, InheritedNotifier
Classes: Railtie
Constant Summary
collapse
- VERSION =
'0.2.0'
Class Method Summary
collapse
Class Method Details
.check_classes ⇒ Object
to check you did not specify a class that does not exist
32
33
34
|
# File 'lib/lazy_observers.rb', line 32
def self.check_classes
observers.values.flatten.uniq.each { |klass| klass.constantize }
end
|
.clear ⇒ Object
40
41
42
43
|
# File 'lib/lazy_observers.rb', line 40
def self.clear
@observers = {}
@loaded = []
end
|
.debug_active_record_loading ⇒ Object
36
37
38
|
# File 'lib/lazy_observers.rb', line 36
def self.debug_active_record_loading
ActiveRecord::Base.send(:extend, LazyObservers::InheritedDebugger)
end
|
.observed_loaded(klass) ⇒ Object
7
8
9
10
11
12
13
14
|
# File 'lib/lazy_observers.rb', line 7
def self.observed_loaded(klass)
class_name = klass.name
loaded << [klass, class_name]
observers.each do |observer, observed|
connect!(observer.instance, klass) if observed.include?(class_name)
end
(on_load_callbacks[class_name]||[]).each{|block| block.call(klass) }
end
|
.observer_loaded(observer, classes) ⇒ Object
16
17
18
|
# File 'lib/lazy_observers.rb', line 16
def self.observer_loaded(observer, classes)
observers[observer] = classes
end
|
.observer_ready(observer, classes) ⇒ Object
20
21
22
23
24
|
# File 'lib/lazy_observers.rb', line 20
def self.observer_ready(observer, classes)
loaded.each do |klass, name|
connect!(observer, klass) if classes.include?(name)
end
end
|
.on_load(observed, &block) ⇒ Object
26
27
28
29
|
# File 'lib/lazy_observers.rb', line 26
def self.on_load(observed, &block)
on_load_callbacks[observed] ||= []
on_load_callbacks[observed] << block
end
|