Module: StateStore::Extension::ClassMethods

Defined in:
lib/state_store/extension.rb

Instance Method Summary collapse

Instance Method Details

#has_states(*states) ⇒ Object

Raises:

  • (ArgumentError)


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/state_store/extension.rb', line 6

def has_states *states
  state_store_options = states && states.last.is_a?(Hash) && states.pop || {}
  raise ArgumentError.new("No states given") if states.empty? 
  raise ArgumentError.new(":in is required") unless state_store_options[:in]

  state_store_options[:as] ||= :states
  store = StateStore::BinaryStore.new(states)

  @states_stores ||={}
  @states_stores_options ||={}

  @states_stores[state_store_options[:as]] = store
  @states_stores_options[state_store_options[:as]] = state_store_options
  create_methods_for_state_store(state_store_options[:as])
end

#states_storesObject



22
23
24
# File 'lib/state_store/extension.rb', line 22

def states_stores
  @states_stores
end

#states_stores_optionsObject



26
27
28
# File 'lib/state_store/extension.rb', line 26

def states_stores_options
  @states_stores_options
end