class TWKB::App
Attributes
board_name[RW]
config[RW]
Public Class Methods
new(options)
click to toggle source
# File lib/twkb.rb, line 10 def initialize(options) @config = TWKB::Config.new @board_name = get_board_name options[:board_name] populate_stages end
Public Instance Methods
print_table()
click to toggle source
# File lib/twkb.rb, line 16 def print_table formatter = TWKB::Formatter.new(:title => @board_name, :stages => @config.stages, :cell_width => @config['view.cell_width']) puts formatter.table end
Private Instance Methods
get_board_name(name = nil)
click to toggle source
# File lib/twkb.rb, line 22 def get_board_name(name = nil) name || @config['board_name'] || 'personal' end
populate_stages()
click to toggle source
# File lib/twkb.rb, line 26 def populate_stages tasks = TWKB::Task.all(:board => @board_name) @config.stage_names.each do |stage| @config.stages[stage][:tasks] = tasks.select{|task| task['stage'] == stage && task['status'] == 'pending' }.sort_by{|k| k['urgency']}.reverse # Truncate headers to match cell width @config.stages[stage][:label][:value] = @config.stages[stage][:label][:value][0..@config['view.cell_width']] if @config.stages[stage][:wip] label_value = "\n(#{@config.stages[stage][:tasks].length}/#{@config.stages[stage][:wip]})" @config.stages[stage][:label][:value] << label_value[0..@config['view.cell_width']] end end # 'Done' is special if @config.stage_names.include? 'done' @config.stages['done'][:tasks] = tasks.select{ |task| task['status'] == 'completed' }.sort_by{|k| k['end'] }.reverse[0..@config['view.done_tasks']-1] end end