tempest_time 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a0741b1d3f1af0e3145fbcb9039d3856135c455d
4
- data.tar.gz: f8c88a25127cfb070a31b6ad76da191306e49faf
2
+ SHA256:
3
+ metadata.gz: 5f0b28efca7d86aa211972f46715abbc9280b68b9ef899964601d31b22175240
4
+ data.tar.gz: 9f244e11657b42344c22275331bde8538a247117a4c098519355f6e766bdf89d
5
5
  SHA512:
6
- metadata.gz: 6243e1801cdcc99e376cc1a57ad36022c3ef7cd2077adbb584c5a6c3d505308523ad6e63fa2f4813d9aec99fe71261957834b1ac5a8fb914a6f6966a7b8ccd8e
7
- data.tar.gz: f1fa740661e844fca870aa50848560e93eb5ec309a8ccaa9380ee94f5af4ef7f1e4180970958c52341f62d014b4f4be1bd2fbbf40003f9d887236bbc18f79e83
6
+ metadata.gz: 314dc7529baf6ff390c05d6429da13244015ecf6d89d840bab1063a53cddeb067fd0275a036d63320617b9de527bdfa896c409682a33c51cc0ec6313b19e0d8e
7
+ data.tar.gz: 1de292852bc3af692ed108442edf035d4adae2f49a686bb12986d66413f76170d4ee13708dfb84a4e8cad124580270d47c0d76480b397ae0f92f684ba3bbd1bf
@@ -7,11 +7,11 @@ module TempoAPI
7
7
  def initialize(seconds, options)
8
8
  super
9
9
  @seconds = seconds
10
- @remaining = options['remaining']
11
- @issue = options['issue']
12
- @message = options['message']
13
- @date = options['date'] ? options['date'] : Date.today
14
- @billable = options['billable']
10
+ @remaining = options[:remaining]
11
+ @issue = options[:issue]
12
+ @message = options[:message]
13
+ @date = options[:date] ? options[:date] : Date.today
14
+ @billable = options[:billable]
15
15
  end
16
16
 
17
17
  private
@@ -52,8 +52,9 @@ module TempestTime
52
52
  end
53
53
 
54
54
  desc 'report', 'Generate a user or team report.'
55
- option :week, aliases: '-w', type: :numeric
56
55
  option :team, aliases: '-t', type: :string
56
+ option :start, aliases: '-s', type: :string
57
+ option :end, aliases: '-e', type: :string
57
58
  def report(*users)
58
59
  require_relative 'commands/report'
59
60
  TempestTime::Commands::Report.new(users, options).execute
@@ -13,6 +13,8 @@ module TempestTime
13
13
  def initialize(users, options)
14
14
  @users = users || []
15
15
  @team = options[:team]
16
+ @start_date = options[:start] ? Date.parse(options[:start]) : nil
17
+ @end_date = options[:end] ? Date.parse(options[:end]) : nil
16
18
  @teams = TempestTime::Settings::Teams.new
17
19
  end
18
20
 
@@ -24,7 +26,11 @@ module TempestTime
24
26
  @users.push(@teams.members(@team)) if @team
25
27
  abort('No users specified.') unless @users.any?
26
28
 
27
- @week = week_prompt('Please select the week to report.')
29
+ if @start_date.nil? || @end_date.nil?
30
+ @week = week_prompt('Please select the week to report.')
31
+ else
32
+ validate_date_input
33
+ end
28
34
 
29
35
  with_spinner('Generating report...') do |spinner|
30
36
  table = render_table
@@ -72,6 +78,10 @@ module TempestTime
72
78
  @end_date ||= week_dates(@week).last
73
79
  end
74
80
 
81
+ def validate_date_input
82
+ abort('Start date must come before end date.') unless start_date < end_date
83
+ end
84
+
75
85
  def required_seconds
76
86
  @required_seconds ||= TempoAPI::Requests::GetUserSchedule.new(
77
87
  start_date: start_date,
@@ -13,7 +13,8 @@ module TempestTime
13
13
  end
14
14
 
15
15
  def execute!
16
- timer.delete ? deleted_message : no_timer_message
16
+ timer.exists? ? deleted_message : no_timer_message
17
+ timer.delete
17
18
  end
18
19
 
19
20
  private
@@ -21,11 +22,15 @@ module TempestTime
21
22
  attr_reader :issue, :timer
22
23
 
23
24
  def deleted_message
24
- prompt.say('baleeted')
25
+ prompt.say(
26
+ pastel.yellow(
27
+ "Timer #{issue} deleted at #{formatted_time_long(timer.runtime)}"
28
+ )
29
+ )
25
30
  end
26
31
 
27
32
  def no_timer_message
28
- prompt.say('noleeted')
33
+ prompt.say(pastel.red("Timer #{issue} does not exist!"))
29
34
  end
30
35
  end
31
36
  end
@@ -33,9 +33,9 @@ module TempestTime
33
33
 
34
34
  def action_prompt(timer)
35
35
  if timer.running?
36
- prompt.select('', %w(Pause Track))
36
+ prompt.select('', %w(Pause Track Delete))
37
37
  else
38
- prompt.select('', %w(Resume Track))
38
+ prompt.select('', %w(Resume Track Delete))
39
39
  end
40
40
  end
41
41
 
@@ -50,6 +50,9 @@ module TempestTime
50
50
  when 'Track'
51
51
  require_relative './track'
52
52
  TempestTime::Commands::Timer::Track.new(issue).execute
53
+ when 'Delete'
54
+ require_relative './delete'
55
+ TempestTime::Commands::Timer::Delete.new(issue).execute
53
56
  else
54
57
  abort
55
58
  end
@@ -38,8 +38,8 @@ module TempestTime
38
38
  Commands::Track.new(
39
39
  parsed_time(time),
40
40
  [issue],
41
- 'message' => message,
42
- 'billable' => billable
41
+ message: message,
42
+ billable: billable
43
43
  ).execute
44
44
  end
45
45
  end
@@ -18,6 +18,7 @@ module TempestTime
18
18
 
19
19
  def execute!
20
20
  dates
21
+
21
22
  unless options[:autoconfirm]
22
23
  confirm_prompt
23
24
  end
@@ -31,13 +32,13 @@ module TempestTime
31
32
  private
32
33
 
33
34
  def track_time(time, options)
34
- message = "Tracking #{formatted_time(time)} to #{options['issue']}..."
35
+ message = "Tracking #{formatted_time(time)} to #{options[:issue]}..."
35
36
  with_success_fail_spinner(message) do
36
- options['remaining'] = if options['remaining'].nil?
37
- remaining_estimate(options['issue'], time)
38
- else
39
- parsed_time(options['remaining'])
40
- end
37
+ options[:remaining] = if options[:remaining].nil?
38
+ remaining_estimate(options[:issue], time)
39
+ else
40
+ parsed_time(options[:remaining])
41
+ end
41
42
  TempoAPI::Requests::CreateWorklog.new(time, options).send_request
42
43
  end
43
44
  end
@@ -71,7 +72,7 @@ module TempestTime
71
72
  end
72
73
 
73
74
  def billability(options)
74
- options['billable'] ? 'billed' : 'non-billed'
75
+ options[:billable] ? 'billed' : 'non-billed'
75
76
  end
76
77
  end
77
78
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TempestTime
4
- VERSION = '1.2.0'
4
+ VERSION = '1.2.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tempest_time
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Devan Hurst
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-26 00:00:00.000000000 Z
11
+ date: 2019-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -346,8 +346,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
346
346
  - !ruby/object:Gem::Version
347
347
  version: '0'
348
348
  requirements: []
349
- rubyforge_project:
350
- rubygems_version: 2.5.1
349
+ rubygems_version: 3.0.2
351
350
  signing_key:
352
351
  specification_version: 4
353
352
  summary: Smart CLI for Jira Cloud.