Method: Glimmer::DataBinding::Observer#observe
- Defined in:
- lib/glimmer/data_binding/observer.rb
#observe(observable, *args) ⇒ Object Also known as: register
registers observer in an observable on args usually containing a property and options (optional) observer maintains registration list to unregister later
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/glimmer/data_binding/observer.rb', line 85 def observe(observable, *args) = args.last.is_a?(Hash) ? args.last : {} return if observable.nil? return if [:ignore_frozen] && observable.frozen? unless observable.is_a?(Observable) # TODO refactor code to be more smart/polymorphic/automated and honor open/closed principle (e.g. for SomeClass, search if there is ObservableSomeClass) if observable.is_a?(Array) observable.extend(ObservableArray) elsif observable.is_a?(Hash) observable.extend(ObservableHash) else observable.extend(ObservableModel) end end args = compact_args(args) observable.add_observer(self, *args) ensure_registration_for!(observable, *args) end |