module AASM::Persistence::NoBrainerPersistence::InstanceMethods

Private Instance Methods

aasm_ensure_initial_state() click to toggle source

Ensures that if the aasm_state column is nil and the record is new that the initial state gets populated before validation on create

foo = Foo.new
foo.aasm_state # => nil
foo.valid?
foo.aasm_state # => "open" (where :open is the initial state)

foo = Foo.find(:first)
foo.aasm_state # => 1
foo.aasm_state = nil
foo.valid?
foo.aasm_state # => nil
# File lib/aasm/persistence/no_brainer_persistence.rb, line 96
def aasm_ensure_initial_state
  AASM::StateMachineStore.fetch(self.class, true).machine_names.each do |name|
    aasm_column = self.class.aasm(name).attribute_name
    aasm(name).enter_initial_state if !read_attribute(aasm_column) || read_attribute(aasm_column).empty?
  end
end
aasm_raise_invalid_record() click to toggle source
# File lib/aasm/persistence/no_brainer_persistence.rb, line 58
def aasm_raise_invalid_record
  raise NoBrainer::Error::DocumentInvalid.new(self)
end
aasm_read_attribute(name) click to toggle source
# File lib/aasm/persistence/no_brainer_persistence.rb, line 73
def aasm_read_attribute(name)
  read_attribute(name)
end
aasm_save() click to toggle source
# File lib/aasm/persistence/no_brainer_persistence.rb, line 54
def aasm_save
  self.save
end
aasm_supports_transactions?() click to toggle source
# File lib/aasm/persistence/no_brainer_persistence.rb, line 62
def aasm_supports_transactions?
  false
end
aasm_update_column(attribute_name, value) click to toggle source
# File lib/aasm/persistence/no_brainer_persistence.rb, line 66
def aasm_update_column(attribute_name, value)
  write_attribute(attribute_name, value)
  save(validate: false)

  true
end
aasm_write_attribute(name, value) click to toggle source
# File lib/aasm/persistence/no_brainer_persistence.rb, line 77
def aasm_write_attribute(name, value)
  write_attribute(name, value)
end