Module: SolidState

Extended by:
ActiveSupport::Concern
Defined in:
lib/solidstate.rb

Overview

require ‘active_support/core_ext/class/attribute_accessors’

Defined Under Namespace

Modules: ClassMethods Classes: InvalidTransitionError

Constant Summary collapse

STATE_ATTRIBUTE =
:state.freeze

Instance Method Summary collapse

Instance Method Details

#set_state(new_state) ⇒ Object



78
79
80
# File 'lib/solidstate.rb', line 78

def set_state(new_state)
  set_state!(new_state) rescue false
end

#set_state!(new_state) ⇒ Object



73
74
75
76
# File 'lib/solidstate.rb', line 73

def set_state!(new_state)
  raise InvalidTransitionError.new("Cannot transition from #{state} to #{dest}") unless can_transition_to?(new_state)
  self.state = new_state
end

#update_state(new_state) ⇒ Object



82
83
84
# File 'lib/solidstate.rb', line 82

def update_state(new_state)
  save if set_state(new_state)
end

#update_state!(new_state) ⇒ Object



86
87
88
# File 'lib/solidstate.rb', line 86

def update_state!(new_state)
  save! if set_state!(new_state)
end