module Draco::State::ClassMethods
Public Instance Methods
state(values, options = {})
click to toggle source
# File lib/draco/state.rb, line 19 def state(values, options = {}) raise Draco::State::StateExistsError, "This entity already has a state defined" if @default_state raise Draco::State::NoStatesDefinedError, "This entity has no possible states defined." if values.nil? || values.empty? @default_state = options.delete(:default) || values.first.new @state_options = values unless values.include?(@default_state.class) message = ["The default state is not a member of the possible states."] messate += "Make sure you initialize the class." if @default_state.is_a?(Class) raise Draco::State::InvalidDefaultError, message.join(" ") end end