Sha256: d8c2aab38cfb5b997b4233486a2209b42b041015edf2e1cafa2c63359d35a5e4

Contents?: true

Size: 622 Bytes

Versions: 4

Compression:

Stored size: 622 Bytes

Contents

class MessageStateMachine
  include Statesman::Machine

  state :pending, initial: true
  state :unread
  state :read

  transition from: :pending, to: :unread
  transition from: :pending, to: :read
  transition from: :unread, to: :read
  transition from: :read, to: :unread

  before_transition(from: :pending, to: :read) do |message|
    message.read_at = Time.zone.now unless message.read_at
  end

  before_transition(from: :unread, to: :read) do |message|
    message.read_at = Time.zone.now unless message.read_at
  end

  before_transition(from: :read, to: :unread) do |message|
    message.read_at = nil
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
enju_message-0.1.14.pre18 app/models/message_state_machine.rb
enju_message-0.1.14.pre17 app/models/message_state_machine.rb
enju_message-0.1.14.pre16 app/models/message_state_machine.rb
enju_message-0.1.14.pre15 app/models/message_state_machine.rb