module Workflow::Join::ActiveRecord::PendingTransitions

table.column :workflow_pending_transitions, :string

Public Instance Methods

pending_transition!(value) click to toggle source
# File lib/workflow/join/active_record/pending_transitions.rb, line 22
def pending_transition!(value)
  pending_transitions!(pending_transitions | [value])
end
pending_transitions() click to toggle source
# File lib/workflow/join/active_record/pending_transitions.rb, line 6
def pending_transitions
  workflow_pending_transitions.to_s.split(',').map(&:to_sym)
end
pending_transitions!(value) click to toggle source
# File lib/workflow/join/active_record/pending_transitions.rb, line 10
def pending_transitions!(value)
  pts = case value
        when Array then value.map(&:to_s).join(',')
        when String, Symbol then value.to_s
        end
  update_column :workflow_pending_transitions, pts
end
pending_transitions?() click to toggle source
# File lib/workflow/join/active_record/pending_transitions.rb, line 18
def pending_transitions?
  !pending_transitions.empty?
end
try_pending_transitions!() click to toggle source
# File lib/workflow/join/active_record/pending_transitions.rb, line 26
def try_pending_transitions!
  pending_transitions!(pending_transitions.reject do |transition|
    begin
      respond_to?("can_#{transition}?") && \
        public_send("can_#{transition}?") && \
        public_send("#{transition}!".to_sym) && \
        true
    rescue
      false # no transition no cry
    end
  end)
end