class TrelloDXY::CLI::Board::Time

Public Class Methods

new() click to toggle source
# File lib/trello_dxy/cli/board/time.rb, line 5
def initialize
  @options = {}
end

Public Instance Methods

run() click to toggle source
# File lib/trello_dxy/cli/board/time.rb, line 9
def run
  option_parser.parse!
  required_options
  board = TrelloDXY::Requests::BoardForUrl.new.board(@options[:url])
  cards = board_cards(board, @options[:closed])
  puts TrelloDXY::Formatters::BoardForUrl.new(cards).output @options[:output]
end

Private Instance Methods

board_cards(board, include_closed) click to toggle source
# File lib/trello_dxy/cli/board/time.rb, line 19
def board_cards(board, include_closed)
  board.cards.select do |c|
    closed = c.closed
    !closed || (closed && include_closed)
  end
end
help() click to toggle source
# File lib/trello_dxy/cli/board/time.rb, line 51
def help
  puts option_parser.help
end
option_parser(options=@options) click to toggle source
# File lib/trello_dxy/cli/board/time.rb, line 26
def option_parser(options=@options)
  OptionParser.new do |opts|
    opts.banner = "Usage: trello_dxy board [time]"
    opts.on("-u", "--url [URL]", "URL of Trello Board." ) do |o|
      @options[:url] = o
    end
    opts.on("-c", "--closed", "Include closed cards." ) do |o|
      @options[:closed] = o
    end
    opts.on("-o", "--output [OUTPUT]", "Output format [json|csv].") do |o|
      @options[:output] = o
    end
  end
end
required_options() click to toggle source
# File lib/trello_dxy/cli/board/time.rb, line 41
def required_options
  mandatory = [:url]
  missing = mandatory.select { |param| @options[param].nil? }
  unless missing.empty?
    puts "Missing options: #{missing.join(', ')}"
    puts option_parser
    exit 1
  end
end