Module: RuGUI::PropertyChangedSupport::ClassMethods
- Defined in:
- lib/rugui/property_changed_support.rb
Instance Method Summary collapse
-
#when_property_changed(property, method_or_options = {}, &block) ⇒ Object
Invoked when a property was changed.
Instance Method Details
#when_property_changed(property, method_or_options = {}, &block) ⇒ Object
Invoked when a property was changed.
Example: when_property_changed :name do |observable, new_value, old_value| puts "Hey! The property 'name' of the #{observable.class.name} was changed from #{old_value} to #{new_value}." end
Or you can inform the observable: when_property_changed :name, :observable => :rabbit do |observable, new_value, old_value| puts "Hey! The property 'name' of the 'rabbit' was changed from #{old_value} to #{new_value}." end
If you can inform a method to be called: when_property_changed :name, :puts_anything
def puts_anything(observable, new_value, old_value) puts "Hey! The property 'name' of the #{observable.class.name} was changed from #{old_value} to #{new_value}." end
Or you can inform the observable and a method to be called. when_property_changed :name, :observable => :rabbit, :call => :puts_anything
def puts_anything(observable, new_value, old_value) puts "Hey! The property 'name' of the 'rabbit' was changed from #{old_value} to #{new_value}." end
39 40 41 42 43 44 45 |
# File 'lib/rugui/property_changed_support.rb', line 39 def when_property_changed(property, = {}, &block) property_changed_block = RuGUI::PropertyChangedSupport::PropertyChangedBlock.new property_changed_block.property = property property_changed_block.() property_changed_block.block = block if block_given? self.property_changed_blocks << property_changed_block end |