Method: Glimmer::DataBinding::ObservableModel#ensure_array_object_observer

Defined in:
lib/glimmer/data_binding/observable_model.rb

#ensure_array_object_observer(property_name, object, old_object = nil, options = nil) ⇒ Object



147
148
149
150
151
152
153
154
155
156
157
# File 'lib/glimmer/data_binding/observable_model.rb', line 147

def ensure_array_object_observer(property_name, object, old_object = nil, options = nil)
  options ||= {}
  return unless object&.is_a?(Array)
  array_object_observer = array_object_observer_for(property_name)
  array_observer_registration = array_object_observer.observe(object, options)
  property_observer_list(property_name).each do |observer|
    my_registration = observer.registration_for(self, property_name) # TODO eliminate repetition
    observer.add_dependent(my_registration => array_observer_registration)
  end
  array_object_observer_for(property_name).unregister(old_object) if old_object.is_a?(ObservableArray)
end