module ActiveState::Model::ClassMethods

Attributes

initial_state[RW]

Public Instance Methods

scope_for_state(*states, **named) click to toggle source

Creates scopes for the given states in this form: scope :my_state, -> { where state_name: MyState.name }

Also accepts pairs of scope_name: StateClass pairs: scope :scope_name, -> { where state_name: StateClass.name }

# File lib/active_state/model.rb, line 12
def scope_for_state(*states, **named)
  states.each do |state|
    named[state.name.demodulize.underscore] = state
  end
  named.each do |k, v|
    scope k, -> { where state_name: v.name }
  end
end