Sha256: ea0da3552b993c23e4747054a34b6d07ef07f3cb47a6457e53304708d1e6633b

Contents?: true

Size: 1.25 KB

Versions: 3

Compression:

Stored size: 1.25 KB

Contents

module Scrum
  class BacklogMover < TrelloService
    include ScrumBoards

    def move(planning_board_id, sprint_board_id)
      setup(planning_board_id, sprint_board_id)
      inspect_backlog
      @sprint_board.place_seabed(@seabed_card) if @seabed_card
    end

    private

    def setup(planning_board_id, sprint_board_id)
      @sprint_board = sprint_board(sprint_board_id)
      fail "sprint board is missing #{@sprint_board.backlog_list_name} list" unless @sprint_board.backlog_list

      @planning_board = planning_board(planning_board_id)
      fail "backlog list not found on planning board" unless @planning_board.backlog_list

      @waterline_card = @planning_board.waterline_card
      @seabed_card = @planning_board.seabed_card
    end

    def inspect_backlog
      @planning_board.backlog_cards.each do |card|
        if @seabed_card && card == @seabed_card
          break
        elsif @waterline_card && card == @waterline_card
          @sprint_board.place_waterline(@waterline_card)
          puts "under the waterline"
        else
          move_sprint_card(card) unless @planning_board.sticky?(card)
        end
      end
    end

    def move_sprint_card(card)
      puts %(moving card "#{card.name}")
      @sprint_board.receive(card)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
trollolo-0.1.1 lib/scrum/backlog_mover.rb
trollolo-0.1.0 lib/scrum/backlog_mover.rb
trollolo-0.0.14 lib/scrum/backlog_mover.rb