Module: Kvo::ClassMethods

Defined in:
lib/kvo.rb

Instance Method Summary collapse

Instance Method Details

#kvo_attr_accessor(*kvo_symbols) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/kvo.rb', line 4

def kvo_attr_accessor(*kvo_symbols)
  kvo_symbols.each do |kvo|
    class_eval <<-METHODS
      can_fire :#{kvo}_changed unless published_events == :any_event_is_ok
      def #{kvo}
        @kvo_#{kvo}
      end
      def #{kvo}=(newVal)
        old = @kvo_#{kvo}
        @kvo_#{kvo}=newVal
        fire :#{kvo}_changed, old, newVal
      end
    METHODS
  end
end