class Toolshed::Commands::GetDailyTimeUpdate

Public Class Methods

cli_options() click to toggle source
# File lib/toolshed/commands/get_daily_time_update.rb, line 4
def self.cli_options
  {
    banner: 'Usage: get_daily_time_update [options]',
    options: {
      format: {
        short_on: '-f',
      },
      use_defaults: {
        short_on: '-d'
      },
      project_id: {
        short_on: '-p',
      }
    }
  }
end

Public Instance Methods

execute(args, options = {}) click to toggle source
# File lib/toolshed/commands/get_daily_time_update.rb, line 21
def execute(args, options = {})
  begin
    time_tracking_class =  Object.const_get("Toolshed::TimeTracking::#{Toolshed::Client.instance.time_tracking_tool.camel_case}")

    time_tracking_project_id = read_user_input_project_id("Project ID (Default: #{Toolshed::Client.instance.time_tracking_default_project_id}):", options.merge!({ default: Toolshed::Client.instance.time_tracking_default_project_id }))
    options.merge!({ project_id: time_tracking_project_id })
    time_tracker = time_tracking_class.create_instance(options)

    puts "Getting time entries:"
    time_tracker.display
  rescue Exception => e
    puts "Time tracking tool is undefined implementation needed or an error occurred #{e.inspect}"
    return
  end
end
read_user_input_project_id(message, options) click to toggle source
# File lib/toolshed/commands/get_daily_time_update.rb, line 37
def read_user_input_project_id(message, options)
  return options[:project_id] if (options.has_key?(:project_id))
  return options[:default] if (Toolshed::Client.instance.use_defaults)

  puts message
  value = $stdin.gets.chomp
  if (value.empty?)
    value = options[:default]
  end

  value
end