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