Sha256: 2efe7141aea38dcfa5b7210e5b0abe31bf1fd924c729f436f748a74b8564b054
Contents?: true
Size: 769 Bytes
Versions: 9
Compression:
Stored size: 769 Bytes
Contents
# StoreState provides method for a store to track its loading state. module StoreState # Called when a collection loads def loaded(initial_state=nil) change_state_to(initial_state || :not_loaded) end def state @state end # Called from the QueryListener when the data is loaded def change_state_to(new_state, skip_trigger=false) old_state = @state @state = new_state # Trigger changed on the 'state' method unless skip_trigger if old_state != @state @model.trigger_for_methods!('changed', :state, :loaded?) end end if @state == :loaded && @fetch_promises # Trigger each waiting fetch @fetch_promises.compact.each {|fp| fp.resolve(@model) } @fetch_promises = nil end end end
Version data entries
9 entries across 9 versions & 1 rubygems