Sha256: b0e0cc0b21a9a746bdd345d946768be36439daa5680d600ca581e849f0aeb653

Contents?: true

Size: 1.94 KB

Versions: 18

Compression:

Stored size: 1.94 KB

Contents

class ValidatorMongoid
  include Mongoid::Document
  include AASM

  field :name
  field :status

  attr_accessor :invalid

  validate do |model|
    errors.add(:validator, "invalid") if invalid
  end

  include AASM

  aasm :column => :status, :whiny_persistence => true do
    before_all_transactions :before_all_transactions
    after_all_transactions  :after_all_transactions

    state :sleeping, :initial => true
    state :running
    state :failed, :after_enter => :fail

    event :run, :after_commit => :change_name! do
      transitions :to => :running, :from => :sleeping
    end

    event :sleep do
      after_commit do |name|
        change_name_on_sleep name
      end
      transitions :to => :sleeping, :from => :running
    end

    event :fail do
      transitions :to => :failed, :from => [:sleeping, :running]
    end
  end

  validates_presence_of :name

  def change_name!
    self.name = "name changed"
    save!
  end

  def change_name_on_sleep name
    self.name = name
    save!
  end

  def fail
    raise StandardError.new('failed on purpose')
  end
end

class MultipleValidatorMongoid
  include Mongoid::Document
  include AASM

  field :name
  field :status

  attr_accessor :invalid

  aasm :left, :column => :status, :whiny_persistence => true do
    state :sleeping, :initial => true
    state :running
    state :failed, :after_enter => :fail

    event :run, :after_commit => :change_name! do
      transitions :to => :running, :from => :sleeping
    end
    event :sleep do
      after_commit do |name|
        change_name_on_sleep name
      end
      transitions :to => :sleeping, :from => :running
    end
    event :fail do
      transitions :to => :failed, :from => [:sleeping, :running]
    end
  end

  validates_presence_of :name

  def change_name!
    self.name = "name changed"
    save!
  end

  def change_name_on_sleep name
    self.name = name
    save!
  end

  def fail
    raise StandardError.new('failed on purpose')
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
aasm-5.3.1 spec/models/mongoid/validator_mongoid.rb
aasm-5.3.0 spec/models/mongoid/validator_mongoid.rb
aasm-5.2.0 spec/models/mongoid/validator_mongoid.rb
aasm-5.1.1 spec/models/mongoid/validator_mongoid.rb
aasm-5.1.0 spec/models/mongoid/validator_mongoid.rb
aasm-5.0.8 spec/models/mongoid/validator_mongoid.rb
aasm-5.0.7 spec/models/mongoid/validator_mongoid.rb
aasm-5.0.6 spec/models/mongoid/validator_mongoid.rb
aasm-5.0.5 spec/models/mongoid/validator_mongoid.rb
aasm-5.0.4 spec/models/mongoid/validator_mongoid.rb
aasm-5.0.3 spec/models/mongoid/validator_mongoid.rb
aasm-5.0.2 spec/models/mongoid/validator_mongoid.rb
aasm-5.0.1 spec/models/mongoid/validator_mongoid.rb
aasm-5.0.0 spec/models/mongoid/validator_mongoid.rb
aasm-4.12.3 spec/models/mongoid/validator_mongoid.rb
aasm-4.12.2 spec/models/mongoid/validator_mongoid.rb
aasm-4.12.1 spec/models/mongoid/validator_mongoid.rb
aasm-4.12.0 spec/models/mongoid/validator_mongoid.rb