module Mobx::Extension::ClassMethods

Public Instance Methods

observable(attr_name, value=nil) click to toggle source
# File lib/mobx/extension.rb, line 4
def observable(attr_name, value=nil)
  define_method(attr_name) do
    @__mobx_observables ||= {}
    @__mobx_observables[attr_name] ||= Mobx::Observable.new(value)
    @__mobx_observables[attr_name].get 
  end

  define_method("#{attr_name}=") do |value|
    @__mobx_observables ||= {}
    if @__mobx_observables.has_key?(attr_name)
      @__mobx_observables[attr_name].set(value)
    else  
      @__mobx_observables[attr_name] = Mobx::Observable.new(value) 
    end
  end
end