toggl-jobcan 0.6.0 → 0.7.0

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
2
  SHA256:
3
- metadata.gz: 36eae63941b0dee9f41420d544f5cd974be16c955e65fe30f4a7b2fa242e979a
4
- data.tar.gz: 5d0e32e6fd5e474d41edb5440bddfed62e1600ad82edcd07d64fe852a998c9e3
3
+ metadata.gz: 7d97f44c04aaab1de12ddf25087a02b870db237b7926db2a760f6d93888a1eff
4
+ data.tar.gz: 7b5833d24e69598835625fd86e2e12063053ea4ca358f835f27eaf27f8711d62
5
5
  SHA512:
6
- metadata.gz: f1ea1917a1298429755f82fa2b567600159c0f86e13e846769735e0066f34444fa911099c2a97b55dd589e2d9858264e212b1f89ddd2134cabd5319684f123c7
7
- data.tar.gz: 023b5d74a1e592c9f080cbb54d6efdec5712d10128aa09597c049187640b81812466990b26fae4b254e9b0e8d29140741edad62f12c6ecd4190085fd70d9e73d
6
+ metadata.gz: 8d5b2f45ee2502f36d4e4e6ca82c31d425a1efd511d2f49fec521d4af2eaf370b529bf4d129c91d9ba3de75102b166318b0220b81d1366e242defbd124cfa94d
7
+ data.tar.gz: 6fdeff1edb4f8cde58487cff610cfd4a7e845aef732e2e2775ae887fae3037c04bddd2aeb94a474f59bc8de986e5f9e058dc4d67e736259faf0c0adbc3d3aa81
@@ -104,27 +104,40 @@ module Toggl
104
104
  end
105
105
  end
106
106
 
107
+ # To collect time entries in an API call, target days must be in a single month
108
+ def validate_days_in_a_month
109
+ day = @target_days.first
110
+ y = day.year
111
+ m = day.month
112
+ unless @target_days.all? { |d| d.year == y and d.month == m }
113
+ raise DifferentYearMonthError, "Different year/month=#{d.year}/#{d.month}"
114
+ end
115
+ end
116
+
107
117
  def register_days
118
+ validate_days_in_a_month
119
+ working_times_map = jobcan.fetch_toggl_worktime(@target_days)
108
120
  @target_days.each do |date|
109
- register_day(date)
121
+ register_day(working_times_map, date)
110
122
  end
111
123
  end
112
124
 
113
- def register_day(date)
125
+ def register_day(working_times_map, date)
114
126
  puts "Input date: #{date}"
115
- working_times = jobcan.fetch_toggl_worktime(date).flatten
116
- if working_times.any?(&:nil?)
127
+ working_times = working_times_map[date.day]&.flatten
128
+ if working_times.nil? || working_times.any?(&:nil?)
117
129
  puts 'Includes nil data: skip'
118
130
  return
119
131
  end
120
132
  jobcan.navigate_to_attendance_modify_day(date)
121
133
  jobcan.input_day_worktime(date, working_times)
122
134
  sleep 1
123
- puts " - Finish: #{date}; Total time: #{jobcan.toggl.total_time}"
135
+ puts " - Finish: #{date}; Total time: #{jobcan.toggl.total_time(day: date.day)}"
124
136
  end
125
137
  end
126
138
  end
127
139
 
128
140
  class NoDayGivenError < StandardError; end
141
+ class DifferentYearMonthError < StandardError; end
129
142
  end
130
143
  end
@@ -4,9 +4,11 @@ module Toggl
4
4
  module Jobcan
5
5
  # Provides support methods for Toggl
6
6
  module TogglSupport
7
- def fetch_toggl_worktime(date)
8
- @toggl.merge!(date.year, date.month, date.day)
9
- @toggl.work_time
7
+ def fetch_toggl_worktime(dates)
8
+ first_day = dates.sort.first
9
+ last_day = dates.sort.last
10
+ @toggl.merge_multi!(first_day.year, first_day.month, first_day.day, last_day.day)
11
+ @toggl.work_time_map
10
12
  end
11
13
 
12
14
  def toggl_time_format(date, timestamp)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Toggl
4
4
  module Jobcan
5
- VERSION = '0.6.0'
5
+ VERSION = '0.7.0'
6
6
  end
7
7
  end
data/toggl-jobcan.gemspec CHANGED
@@ -24,9 +24,10 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.add_dependency 'selenium-webdriver'
26
26
  spec.add_dependency 'thor'
27
- spec.add_dependency 'toggl-worktime', '~> 0.6.0', '>= 0.6.0'
27
+ spec.add_dependency 'toggl-worktime', '~> 0.7.0', '>= 0.7.0'
28
28
  spec.add_dependency 'webdrivers'
29
29
  spec.add_development_dependency 'bundler'
30
+ spec.add_development_dependency 'gem-release'
30
31
  spec.add_development_dependency 'github_changelog_generator'
31
32
  spec.add_development_dependency 'pry'
32
33
  spec.add_development_dependency 'pry-byebug'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toggl-jobcan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomoya Kabe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-08-30 00:00:00.000000000 Z
11
+ date: 2025-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -44,20 +44,20 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.6.0
47
+ version: 0.7.0
48
48
  - - ">="
49
49
  - !ruby/object:Gem::Version
50
- version: 0.6.0
50
+ version: 0.7.0
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: 0.6.0
57
+ version: 0.7.0
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 0.6.0
60
+ version: 0.7.0
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: webdrivers
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -86,6 +86,20 @@ dependencies:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: gem-release
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
89
103
  - !ruby/object:Gem::Dependency
90
104
  name: github_changelog_generator
91
105
  requirement: !ruby/object:Gem::Requirement