class Tlog::Command::Create

Public Instance Methods

description() click to toggle source
# File lib/tlog/command/create.rb, line 8
def description 
  "creates a new time log either with no goal or with a goal"
end
execute(input, output) click to toggle source
# File lib/tlog/command/create.rb, line 12
def execute(input, output)
  raise Tlog::Error::CommandInvalid, "Must specify log name" unless input.args[0]

  log = Tlog::Entity::Log.new
  log.name = input.args[0];
  create_log(log, input.options)
  output.line("Created log '#{log.name}'")
end
name() click to toggle source
# File lib/tlog/command/create.rb, line 4
def name
  "create"
end
options(parser, options) click to toggle source
# File lib/tlog/command/create.rb, line 21
def options(parser, options)
  parser.banner = "usage: tlog create <log_name>"

  parser.on("-g", "--goal <goal_length>") do |goal|
    options[:goal] = goal
  end

  parser.on("-s", "--state <initial_state>") do |state|
    options[:state] = state
  end

  parser.on("-p", "--points <initial_points_value>") do |points|
    options[:points] = points
  end
end

Private Instance Methods

create_log(log, options) click to toggle source
# File lib/tlog/command/create.rb, line 39
def create_log(log, options)
  storage.in_branch do |wd|
    raise Tlog::Error::CommandInvalid, "Time log '#{log.name}' already exists" unless storage.create_log(log, options)
  end
end