Module: Netzke::Core::State
- Included in:
- Base
- Defined in:
- lib/netzke/core/state.rb
Overview
A component can access and update its state through the state
method, e.g.:
state[:position] = {:x => 100, :y => 200}
state[:position] #=> {:x => 100, :y => 200}
Default implementation uses session to store stateful data, but can be implemented differently by 3rd-party gems.
Sharing state
Different components can share the state by specifying the same persistent_key
option.
Note that the provided persistence_key has effect on application level, not only within the view. By default persistence_key
is set to component’s js_id
. Thus, _two components named equally will share the state even being used in different Rails views_.
Defined Under Namespace
Classes: StateProxy
Instance Method Summary collapse
-
#persistence_key ⇒ Object
A string which identifies the component.
-
#state ⇒ Object
Component’s persistent state.
Instance Method Details
#persistence_key ⇒ Object
A string which identifies the component. Can be passed as persistence_key
config option. Two components with the same persistence_key
will be sharing the state. If persistence_key
is passed in the config, use it. Otherwise use js_id.
48 49 50 |
# File 'lib/netzke/core/state.rb', line 48 def persistence_key (config.persistence_key || js_id).to_sym end |
#state ⇒ Object
Component’s persistent state.
state[:position] = {:x => 100, :y => 200}
state[:position] #=> {:x => 100, :y => 200}
May be overridden by persistence subsystems. The object returned by this should implement the following methods:
-
[]=
-
delete(key)
-
clear
64 65 66 |
# File 'lib/netzke/core/state.rb', line 64 def state @state_proxy ||= StateProxy.new(persistence_key) end |