mirror of
https://github.com/aasm/aasm
synced 2023-03-27 23:22:41 -04:00
provide a configuration class (to easily spot configuration options)
This commit is contained in:
parent
3bbbd64fd9
commit
55f1eed4fa
4 changed files with 23 additions and 2 deletions
|
@ -3,6 +3,7 @@ require 'ostruct'
|
|||
%w(
|
||||
version
|
||||
errors
|
||||
configuration
|
||||
base
|
||||
instance_base
|
||||
transition
|
||||
|
|
|
@ -95,7 +95,6 @@ module AASM
|
|||
private
|
||||
|
||||
def configure(key, default_value)
|
||||
@state_machine.config.send(:new_ostruct_member, key)
|
||||
if @options.key?(key)
|
||||
@state_machine.config.send("#{key}=", @options[key])
|
||||
elsif @state_machine.config.send(key).nil?
|
||||
|
|
21
lib/aasm/configuration.rb
Normal file
21
lib/aasm/configuration.rb
Normal file
|
@ -0,0 +1,21 @@
|
|||
module AASM
|
||||
class Configuration
|
||||
# for all persistence layers: which database column to use?
|
||||
attr_accessor :column
|
||||
|
||||
# let's cry if the transition is invalid
|
||||
attr_accessor :whiny_transitions
|
||||
|
||||
# for all persistence layers: create named scopes for each state
|
||||
attr_accessor :create_scopes
|
||||
|
||||
# for ActiveRecord: don't store any new state if the model is invalid
|
||||
attr_accessor :skip_validation_on_save
|
||||
|
||||
# for ActiveRecord: use requires_new for nested transactions?
|
||||
attr_accessor :requires_new_transaction
|
||||
|
||||
# forbid direct assignment in aasm_state column (in ActiveRecord)
|
||||
attr_accessor :no_direct_assignment
|
||||
end
|
||||
end
|
|
@ -19,7 +19,7 @@ module AASM
|
|||
@initial_state = nil
|
||||
@states = []
|
||||
@events = {}
|
||||
@config = OpenStruct.new
|
||||
@config = AASM::Configuration.new
|
||||
end
|
||||
|
||||
# called internally by Ruby 1.9 after clone()
|
||||
|
|
Loading…
Reference in a new issue