class Medo::TextTaskWriter
Public Class Methods
new(output_stream = STDOUT)
click to toggle source
Calls superclass method
Medo::TaskWriter::new
# File lib/medo/text_task_writer.rb, line 6 def initialize(output_stream = STDOUT) super() @output_stream = output_stream end
Public Instance Methods
write()
click to toggle source
# File lib/medo/text_task_writer.rb, line 11 def write return puts "There are no tasks left!" if @tasks.empty? presented_active_tasks = present_tasks(active_tasks) presented_completed_tasks = present_tasks(completed_tasks) max_task_length = (presented_active_tasks + presented_completed_tasks).map do |t| t.to_s.split("\n").map(&:size).max end.max max_output_width = [Terminal.instance.size.first, max_task_length].min presented_active_tasks.each do |t| @output_stream.puts t.to_s(max_output_width) end if presented_active_tasks.any? and presented_completed_tasks.any? @output_stream.puts "-" * max_output_width end presented_completed_tasks.each do |t| @output_stream.puts t.to_s(max_output_width) end end
Private Instance Methods
active_tasks()
click to toggle source
# File lib/medo/text_task_writer.rb, line 38 def active_tasks @tasks.reject(&:done?).sort end
completed_tasks()
click to toggle source
# File lib/medo/text_task_writer.rb, line 42 def completed_tasks @tasks.select(&:done?).sort end
present_tasks(tasks)
click to toggle source
# File lib/medo/text_task_writer.rb, line 46 def present_tasks(tasks) tasks.map { |t| TaskPresenter.new(t) } end