Module: TransitionManager
- Included in:
- BoardController, Card, CardsController, IterationController
- Defined in:
- lib/transition_manager.rb
Instance Method Summary collapse
- #apply_transition(card, status) ⇒ Object
- #successor_statuses(card) ⇒ Object
- #transition_allowed?(card, status) ⇒ Boolean
Instance Method Details
#apply_transition(card, status) ⇒ Object
6 7 8 9 10 11 12 13 |
# File 'lib/transition_manager.rb', line 6 def apply_transition(card, status) card.update_attribute("status_name",status.name()) if (Status::IN_PLAY == status) for parent_card in card.parent_cards().select { |c| Status::ESTIMATED == c.status()} apply_transition(parent_card, status) end end end |
#successor_statuses(card) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/transition_manager.rb', line 15 def successor_statuses(card) successor_statuses = Array.new(card.status().successors()) if (! card.child_cards().empty?()) successor_statuses.delete(Status::DROPPED) for child_card in card.child_cards() successor_statuses.delete(Status::IN_PLAY) if (Status::IN_DEV == child_card.status()) successor_statuses.delete(Status::ESTIMATED) if (child_card.status().active?()) end end for parent_card in card.parent_cards() successor_statuses.delete(Status::IN_DEV) if (Status::IN_PLAY == parent_card.status()) successor_statuses.delete(Status::IN_PLAY) if (Status::NEW == parent_card.status()) end return successor_statuses end |
#transition_allowed?(card, status) ⇒ Boolean
2 3 4 |
# File 'lib/transition_manager.rb', line 2 def transition_allowed?(card, status) successor_statuses(card).include?(status) end |