Module: Workflow::Join::ActiveRecord::PendingTransitions
- Included in:
- Workflow::Join::ActiveRecord
- Defined in:
- lib/workflow/join/active_record/pending_transitions.rb
Overview
table.column :workflow_pending_transitions, :string
Instance Method Summary collapse
- #pending_transition!(value) ⇒ Object
- #pending_transitions ⇒ Object
- #pending_transitions!(value) ⇒ Object
- #pending_transitions? ⇒ Boolean
- #try_pending_transitions! ⇒ Object
Instance Method Details
#pending_transition!(value) ⇒ Object
22 23 24 |
# File 'lib/workflow/join/active_record/pending_transitions.rb', line 22 def pending_transition!(value) pending_transitions!(pending_transitions | [value]) end |
#pending_transitions ⇒ Object
6 7 8 |
# 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) ⇒ Object
10 11 12 13 14 15 16 |
# 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? ⇒ Boolean
18 19 20 |
# File 'lib/workflow/join/active_record/pending_transitions.rb', line 18 def pending_transitions? !pending_transitions.empty? end |
#try_pending_transitions! ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 |
# 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 |