Module: Mobx::Extension::ClassMethods

Defined in:
lib/mobx/extension.rb

Instance Method Summary collapse

Instance Method Details

#observable(attr_name, value = nil) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 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