def initialize(transitions = [], options = {})
super(transitions)
@valid = all?
reject! {|transition| !transition}
attributes = map {|transition| transition.attribute}.uniq
raise ArgumentError, 'Cannot perform multiple transitions in parallel for the same state machine attribute' if attributes.length != length
assert_valid_keys(options, :actions, :after, :transaction)
options = {:actions => true, :after => true, :transaction => true}.merge(options)
@skip_actions = !options[:actions]
@skip_after = !options[:after]
@use_transaction = options[:transaction]
end