class TrelloLeadTime::Board
Public Class Methods
from_url(url)
click to toggle source
# File lib/trello_lead_time/board.rb, line 5 def self.from_url(url) @org = Trello::Organization.find(TrelloLeadTime::Config.organization_name) if @org @boards = @org.boards @board = @boards.detect { |b| b.url == url } return Board.new(@board) if @board end nil end
new(trello_board)
click to toggle source
# File lib/trello_lead_time/board.rb, line 15 def initialize(trello_board) @trello_board = trello_board @_lists = {} end
Public Instance Methods
averages(name_of_list_with_done_cards)
click to toggle source
# File lib/trello_lead_time/board.rb, line 55 def averages(name_of_list_with_done_cards) list = find_list_by_name(name_of_list_with_done_cards) response = default_format return response if list.nil? response[:lead_time][:overall] = list.average_lead_time response[:queue_time][:overall] = list.average_queue_time response[:cycle_time][:overall] = list.average_cycle_time response[:age][:overall] = list.average_age breakdown_by_labels = list.breakdown_by_labels(Config.finance_type_labels) response[:lead_time][:finance_types] = breakdown_by_labels[:average][:lead_time] response[:queue_time][:finance_types] = breakdown_by_labels[:average][:queue_time] response[:cycle_time][:finance_types] = breakdown_by_labels[:average][:cycle_time] response[:age][:finance_types] = breakdown_by_labels[:average][:age] breakdown_by_tags = list.breakdown_by_tags response[:lead_time][:initiatives] = breakdown_by_tags[:average][:lead_time] response[:queue_time][:initiatives] = breakdown_by_tags[:average][:queue_time] response[:cycle_time][:initiatives] = breakdown_by_tags[:average][:cycle_time] response[:age][:initiatives] = breakdown_by_tags[:average][:age] response end
cards(name_of_list_with_done_cards)
click to toggle source
# File lib/trello_lead_time/board.rb, line 24 def cards(name_of_list_with_done_cards) list = find_list_by_name(name_of_list_with_done_cards) response = [] return response if list.nil? list.done_or_closed_cards end
name()
click to toggle source
# File lib/trello_lead_time/board.rb, line 20 def name @trello_board.name end
totals(name_of_list_with_done_cards)
click to toggle source
# File lib/trello_lead_time/board.rb, line 31 def totals(name_of_list_with_done_cards) list = find_list_by_name(name_of_list_with_done_cards) response = default_format return response if list.nil? response[:lead_time][:overall] = list.total_lead_time response[:queue_time][:overall] = list.total_queue_time response[:cycle_time][:overall] = list.total_cycle_time response[:age][:overall] = list.total_age breakdown_by_labels = list.breakdown_by_labels(Config.finance_type_labels) response[:lead_time][:finance_types] = breakdown_by_labels[:total][:lead_time] response[:queue_time][:finance_types] = breakdown_by_labels[:total][:queue_time] response[:cycle_time][:finance_types] = breakdown_by_labels[:total][:cycle_time] response[:age][:finance_types] = breakdown_by_labels[:total][:age] breakdown_by_tags = list.breakdown_by_tags response[:lead_time][:initiatives] = breakdown_by_tags[:total][:lead_time] response[:queue_time][:initiatives] = breakdown_by_tags[:total][:queue_time] response[:cycle_time][:initiatives] = breakdown_by_tags[:total][:cycle_time] response[:age][:initiatives] = breakdown_by_tags[:total][:age] response end
Private Instance Methods
default_entry()
click to toggle source
# File lib/trello_lead_time/board.rb, line 99 def default_entry { overall: 0, initiatives: {}, finance_types: {} } end
default_format()
click to toggle source
# File lib/trello_lead_time/board.rb, line 90 def default_format { lead_time: default_entry, queue_time: default_entry, cycle_time: default_entry, age: default_entry, } end
find_list_by_name(name)
click to toggle source
# File lib/trello_lead_time/board.rb, line 81 def find_list_by_name(name) matched_name = find_name_like(@_lists.keys, name) if matched_name.nil? trello_list = @trello_board.lists({filter: 'all'}).detect { |l| element_matches_expression?(l.name, name) } @_lists[name] = TrelloLeadTime::List.from_trello_list(trello_list) if trello_list end @_lists[name] end