class Posto::Application

Attributes

file[RW]
io[RW]
list[RW]
todos[RW]

Public Class Methods

new(arguments, todos, options = {}) click to toggle source
# File lib/posto/application.rb, line 10
def initialize(arguments, todos, options = {})
  @io = options[:io] || STDOUT
  @list_utility = options[:list_utility] || List
  @file = options[:file] || Posto::File.new(arguments.filename)
  @arguments = arguments
  @todos = todos
end

Public Instance Methods

add(todo) click to toggle source
# File lib/posto/application.rb, line 39
def add(todo)
  @file.write @todos = @list_utility.add(todos, todo)
  todo
end
commit(n = 1) click to toggle source
# File lib/posto/application.rb, line 50
def commit(n = 1)
  @file.commit("#{done(n)}")
end
help() click to toggle source
# File lib/posto/application.rb, line 18
def help
  @io.puts Posto::Help.help_text
end
init() click to toggle source
# File lib/posto/application.rb, line 61
def init
  @file.touch
  nil
end
method_missing(symbol, *args) click to toggle source
# File lib/posto/application.rb, line 66
def method_missing(symbol, *args)
  STDERR.puts "Unsupported operation '#{symbol} #{args.join "\n"}'"
end
oops() click to toggle source
# File lib/posto/application.rb, line 54
def oops
  add(`git log -1 --pretty=%B`.strip)
  @file.write @todos = @list_utility.do_bottom(todos)
  @file.oops
  @list_utility.lookup(todos, 1)
end
run() click to toggle source
# File lib/posto/application.rb, line 22
def run
  @io.puts send(@arguments.command, *@arguments.params)
end
schedule(todo)
Alias for: start
start(todo) click to toggle source
# File lib/posto/application.rb, line 44
def start(todo)
  add(todo)
  @file.commit_alone("scheduled '#{todo}'")
end
Also aliased as: schedule