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
value()
Alias for: get

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