class Redux::Store
Attributes
state[R]
Public Class Methods
new(initial_state = nil, &reducer)
click to toggle source
# File lib/redux/store.rb, line 5 def initialize(initial_state = nil, &reducer) @state = initial_state @reducer = reducer || ->(*){} @listeners = [] dispatch({}) end
Public Instance Methods
dispatch(action)
click to toggle source
# File lib/redux/store.rb, line 12 def dispatch(action) @state = @reducer.call(@state, action) @listeners.each{ |listener| listener.call() } end
subscribe(&listener)
click to toggle source
# File lib/redux/store.rb, line 17 def subscribe(&listener) @listeners << listener ->{ @listeners.delete(listener) } end