Class: Toolshed::Commands::GetDailyTimeUpdate

Inherits:
Object
  • Object
show all
Defined in:
lib/toolshed/commands/get_daily_time_update.rb

Instance Method Summary collapse

Instance Method Details

#execute(args, options = {}) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/toolshed/commands/get_daily_time_update.rb', line 4

def execute(args, options = {})
  begin
    time_tracking_class =  Object.const_get("Toolshed::TimeTracking::#{Toolshed::Client.time_tracking_tool.camel_case}")

    time_tracking_project_id = read_user_input_project_id("Project ID (Default: #{Toolshed::Client.time_tracking_default_project_id}):", options.merge!({ default: Toolshed::Client.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 occured #{e.inspect}"
    return
  end
end

#read_user_input_project_id(message, options) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/toolshed/commands/get_daily_time_update.rb', line 20

def read_user_input_project_id(message, options)
  return options[:project_id] if (options.has_key?(:project_id))
  return options[:default] if (Toolshed::Client.use_defaults)

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

  value
end