time_log_robot 0.1.2.1 → 0.1.3

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
  SHA1:
3
- metadata.gz: 71827460802d842afc432e63f81e43dc67430b73
4
- data.tar.gz: e298a0e013600b8ceecbb17c96f450b1f92eed4e
3
+ metadata.gz: 0437011ed9ab0e3431a24088f3c80d3335afb95b
4
+ data.tar.gz: 4af3210d01a89d4edd79e9a702f321b34446cb47
5
5
  SHA512:
6
- metadata.gz: cf45dbe4c59830766700c4b413ff40fd69deb342807ddf7cc6be3b662315b6f37f33fc9a4dcc1476c6c9c1da5962698ec89afa97910ab9d3633e00c33468310a
7
- data.tar.gz: 3b7f530b071a53e1741167165adcc55d78fdb99a923dc63487b04397c1bc9660299734f79c7205f8bb3ab90f4b912894321c1ea37e7393461e9e1807e4c130d8
6
+ metadata.gz: 3bd0f6e19e8bd804d5f9d369785bf2f55a9b8eb1a905deaaae0f7b628fdf54f7a186d60e270f0da826c519523662501ccea9925e454b5a798579321fba4a41ed
7
+ data.tar.gz: ab8b0d0de4d4332abbe2e15ef5360fdcf18881d15d66ab8a5b8568d32bffdee2c7b8760d8bc8cf4c78866ec08a32cfe25e88b507294129af683f1914cb002cea
data/.gitignore CHANGED
@@ -1 +1,2 @@
1
1
  pkg/
2
+ *.gem
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- time_log_robot (0.1.2)
4
+ time_log_robot (0.1.3)
5
5
  activesupport (~> 4.2, >= 4.2.6)
6
6
  commander (~> 4.1, >= 4.1.6)
7
7
  httparty (~> 0.13, >= 0.13.0)
@@ -18,7 +18,6 @@ GEM
18
18
  tzinfo (~> 1.1)
19
19
  ansi (1.5.0)
20
20
  builder (3.2.2)
21
- coderay (1.1.1)
22
21
  commander (4.1.6)
23
22
  highline (~> 1.6.11)
24
23
  highline (1.6.21)
@@ -26,27 +25,16 @@ GEM
26
25
  json (~> 1.8)
27
26
  multi_xml (>= 0.5.2)
28
27
  i18n (0.7.0)
29
- interception (0.5)
30
28
  json (1.8.3)
31
- method_source (0.8.2)
32
29
  minitest (5.8.4)
33
- minitest-emoji (2.0.0)
34
30
  minitest-reporters (1.1.9)
35
31
  ansi
36
32
  builder
37
33
  minitest (>= 5.0)
38
34
  ruby-progressbar
39
35
  multi_xml (0.5.5)
40
- pry (0.10.3)
41
- coderay (~> 1.1.0)
42
- method_source (~> 0.8.1)
43
- slop (~> 3.4)
44
- pry-rescue (1.4.4)
45
- interception (>= 0.5)
46
- pry
47
36
  rake (10.5.0)
48
37
  ruby-progressbar (1.8.1)
49
- slop (3.6.0)
50
38
  thread_safe (0.3.5)
51
39
  tzinfo (1.2.2)
52
40
  thread_safe (~> 0.1)
@@ -56,10 +44,8 @@ PLATFORMS
56
44
 
57
45
  DEPENDENCIES
58
46
  bundler (~> 1.3)
59
- minitest
60
- minitest-emoji
61
- minitest-reporters
62
- pry-rescue
47
+ minitest (~> 5.8)
48
+ minitest-reporters (~> 1.1)
63
49
  rake (~> 10.5)
64
50
  time_log_robot!
65
51
 
data/Rakefile CHANGED
@@ -5,13 +5,15 @@ desc 'Run in IRB for debugging'
5
5
  task :console do
6
6
  require 'irb'
7
7
  require 'irb/completion'
8
- require 'time_log_robot'
8
+ require 'pp'
9
+ require 'yaml'
10
+ require 'active_support'
11
+ require 'httparty'
12
+ Dir[File.expand_path "lib/**/*.rb"].each{|file| require_relative file }
9
13
  ARGV.clear
10
14
  IRB.start
11
15
  end
12
16
 
13
- # @TODO Uncomment when it works! - `rake test`
14
-
15
17
  Rake::TestTask.new do |t|
16
18
  t.libs << 'test'
17
19
  t.test_files = FileList['test/**/*_test.rb']
@@ -7,12 +7,14 @@ module TimeLogRobot
7
7
 
8
8
  base_uri 'https://toggl.com/reports/api/v2'
9
9
 
10
+ # TODO Refactor to avoid having to pass around `since` so much
10
11
  class << self
11
12
  def fetch(since: nil)
12
13
  since ||= Date.today.beginning_of_week(:saturday).to_time
13
14
  response = get('/details', basic_auth: auth, query: query(since))
14
15
  if response.success?
15
- response['data']
16
+ pages = number_of_pages(response['total_count'])
17
+ aggregate_entries(response['data'], pages, since)
16
18
  else
17
19
  raise FetchError, response['error']
18
20
  end
@@ -21,6 +23,26 @@ module TimeLogRobot
21
23
 
22
24
  private
23
25
 
26
+ def aggregate_entries(entries, pages, since)
27
+ 2.upto(pages) do |page|
28
+ entries += get_entries_from_next_page(since, page)
29
+ end
30
+ entries
31
+ end
32
+
33
+ def get_entries_from_next_page(since, page)
34
+ built_query = query(since).merge(page: page)
35
+ response = get('/details', basic_auth: auth, query: built_query)
36
+ response['data']
37
+ end
38
+
39
+ def number_of_pages(count)
40
+ remaining_entries = count % 50
41
+ pages = count / 50
42
+ pages += 1 if remaining_entries > 0
43
+ return pages
44
+ end
45
+
24
46
  def auth
25
47
  {
26
48
  username: token,
@@ -1,3 +1,3 @@
1
1
  module TimeLogRobot
2
- VERSION = '0.1.2.1'
2
+ VERSION = '0.1.3'
3
3
  end
data/test/test_helper.rb CHANGED
@@ -4,7 +4,6 @@ require 'minitest/emoji'
4
4
  require 'minitest/reporters'
5
5
  require 'yaml'
6
6
  require 'active_support'
7
- # require 'pry-rescue/minitest'
8
7
  require 'httparty'
9
8
 
10
9
  Dir[File.expand_path "lib/**/*.rb"].each{|file| require_relative file }
@@ -21,10 +21,8 @@ Gem::Specification.new do |spec|
21
21
  spec.required_ruby_version = '>= 2.0'
22
22
  spec.add_development_dependency 'bundler', '~> 1.3'
23
23
  spec.add_development_dependency 'rake', '~> 10.5'
24
- spec.add_development_dependency 'minitest'
25
- spec.add_development_dependency 'minitest-emoji'
26
- spec.add_development_dependency 'minitest-reporters'
27
- spec.add_development_dependency 'pry-rescue'
24
+ spec.add_development_dependency 'minitest', '~> 5.8'
25
+ spec.add_development_dependency 'minitest-reporters', '~> 1.1'
28
26
 
29
27
  spec.add_runtime_dependency 'activesupport', '~> 4.2', '>= 4.2.6'
30
28
  spec.add_runtime_dependency 'commander', '~> 4.1', '>= 4.1.6'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: time_log_robot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark J. Lehman
@@ -42,58 +42,30 @@ dependencies:
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: minitest-emoji
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
45
+ - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: '0'
47
+ version: '5.8'
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
- - - ">="
52
+ - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: '0'
54
+ version: '5.8'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: minitest-reporters
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: pry-rescue
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
59
+ - - "~>"
88
60
  - !ruby/object:Gem::Version
89
- version: '0'
61
+ version: '1.1'
90
62
  type: :development
91
63
  prerelease: false
92
64
  version_requirements: !ruby/object:Gem::Requirement
93
65
  requirements:
94
- - - ">="
66
+ - - "~>"
95
67
  - !ruby/object:Gem::Version
96
- version: '0'
68
+ version: '1.1'
97
69
  - !ruby/object:Gem::Dependency
98
70
  name: activesupport
99
71
  requirement: !ruby/object:Gem::Requirement