lib/glimmer/data_binding/model_binding.rb in glimmer-2.5.4 vs lib/glimmer/data_binding/model_binding.rb in glimmer-2.5.5
- old
+ new
@@ -73,21 +73,21 @@
# All nested property names
# e.g. property name expression "address.state" gives ['address', 'state']
# If there are any indexed property names, this returns indexes as properties.
# e.g. property name expression "addresses[1].state" gives ['addresses', '[1]', 'state']
def nested_property_names
- @nested_property_names ||= Concurrent::Array.new(property_name_expression.split(/\[|\./).map {|pne| pne.end_with?(']') ? "[#{pne}" : pne })
+ @nested_property_names ||= Concurrent::Array.new(property_name_expression.split(/\[|\./).map {|pne| pne.end_with?(']') ? "[#{pne}" : pne }.reject {|pne| pne.empty? })
end
# Final nested property name
# e.g. property name expression "address.state" gives :state
def nested_property_name
nested_property_names.last
end
# Model representing nested property names
- # e.g. property name expression "address.state" gives [:address]
+ # e.g. property name expression "address.state" gives ['address']
def model_property_names
Concurrent::Array.new(nested_property_names[0...-1])
end
def nested_property?
@@ -135,10 +135,10 @@
converted_value = evaluate_property
observer.call(converted_value).tap do
apply_processor(@binding_options[:after_read], converted_value)
end
end
- observer_registration = model_binding_observer.observe(*[model, property_name, observation_options].compact)
+ observer_registration = model_binding_observer.observe(*([model] + [property_name, observation_options].compact))
my_registration = observer.registration_for(self)
observer.add_dependent(my_registration => observer_registration)
end
end