Module: StateGate::Builder::TransitionValidationMethods
- Included in:
- StateGate::Builder
- Defined in:
- lib/state_gate/builder/transition_validation_methods.rb
Overview
Description
Multiple private methods allowing StateGate::Builder to generate attribute setter methods for transition validation.
-
initializing the attribute with
Class.new:Klass.new(status: :active) #=> ArgumentError -
initializing the attribute with
Class.create:Klass.create(status: :active) #=> ArgumentError -
initializing the attribute with Class.create! :
Klass.create!(status: :active) #=> ArgumentError -
setting the attribute with
attr=:.status = :active #=> :active .status = :archived #=> ArgumentError -
setting the attribute with [:attr]= :
[:status] = :active #=> :active [:status] = :archived #=> ArgumentError -
setting the attribute with attributes= :
.attrubutes = {status: :active} #=> :active .attributes = {status: :archived } #=> ArgumentError -
setting the attribute with assign_attributes :
.assign_attrubutes(status: :active) #=> :active .assign_attributes(status: :archived) #=> ArgumentError -
updating the attribute with Class.update :
Klass.update(instance.id, status: :active) #=> :active Klass.update(instance.id, status: :archived) #=> ArgumentError -
updating the attribute with .update :
.update(status: :active) #=> :active .update(status: :archived) #=> ArgumentError -
updating the attribute with .update_column :
.update_column(:status, :active) #=> :active .update_column(:status, :archived) #=> ArgumentError -
updating the attribute with .update_columns :
.update_columns(status: :active) #=> :active .update_columns(status: :archived) #=> ArgumentError -
updating the attribute with .write_attribute :
.write_attribute(:status, :active) #=> :active .write_attribute(:status, :archived) #=> ArgumentError
| Forcing a change
To force a status change that would otherwise be prohibited, preceed the
new state with force_ :
.status = :archived #=> ArgumentError
.status = :force_archived #=> :archived