class Mobx::Observable
Attributes
observers[R]
Public Class Methods
new(value)
click to toggle source
# File lib/mobx/observable.rb, line 5 def initialize(value) @value = value @observers = [] end
Public Instance Methods
dispose(observer)
click to toggle source
# File lib/mobx/observable.rb, line 32 def dispose(observer) @observers.delete(observer) end
get()
click to toggle source
# File lib/mobx/observable.rb, line 10 def get register_autorun_observers @value end
Also aliased as: value
register_observer(observer)
click to toggle source
# File lib/mobx/observable.rb, line 36 def register_observer(observer) unless @observers.include?(observer) @observers << observer @observers.uniq! observer.register_observable(self) end end
set(value)
click to toggle source
# File lib/mobx/observable.rb, line 17 def set(value) register_autorun_observers if !(@value === value) @value = value if Mobx.in?(:transaction) Mobx.state(:transaction).schedule_observers(@observers) else @observers.each { |observer| observer.call } end end @value end
Protected Instance Methods
register_autorun_observers()
click to toggle source
# File lib/mobx/observable.rb, line 45 def register_autorun_observers return unless Mobx.in?(:autorun) Mobx.state(:autorun).each { |observer| register_observer(observer) } end