class React::Observable

Public Class Methods

new(value, on_change = nil, &block) click to toggle source
# File lib/react/observable.rb, line 3
def initialize(value, on_change = nil, &block)
  @value = value
  @on_change = on_change || block
end

Public Instance Methods

call(new_value) click to toggle source
# File lib/react/observable.rb, line 20
def call(new_value)
  @on_change.call new_value
  @value = new_value
end
method_missing(method_sym, *args, &block) click to toggle source
# File lib/react/observable.rb, line 8
def method_missing(method_sym, *args, &block)
  @value.send(method_sym, *args, &block).tap { |result| @on_change.call @value }
end
respond_to?(method, *args) click to toggle source
# File lib/react/observable.rb, line 12
def respond_to?(method, *args)
  if [:call, :to_proc].include? method
    true
  else
    @value.respond_to? method, *args
  end
end
to_proc() click to toggle source
# File lib/react/observable.rb, line 25
def to_proc
  lambda { |arg = @value| @on_change.call arg }
end