xoggl 1.1.0 → 1.2.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
  SHA1:
3
- metadata.gz: b7b3485f9eb4edb7339c734264e8d3009a13fb64
4
- data.tar.gz: 9de67a70b3ffb000e93e4f15b47f1af786173269
3
+ metadata.gz: be8b9ab30bce7f035c70a3929495943ad549e0d5
4
+ data.tar.gz: 1f1ce7378b30bee853abb3c33dbe19563193fac7
5
5
  SHA512:
6
- metadata.gz: ea869a02f8271bd857e9ef129160209bd77660752b7f45cebce7ebed8ad941a64998c2c72ed2c61fe9aac06255ed86916015c713dfc6e06cb7c0baf9b3ace9cf
7
- data.tar.gz: d9e467955c1eb680c2aaef63de7f491cd566bc5973ba0d58eeb74a21676439d3e7682f38f95ce64b2fa620d8ee86c6757d73fb385c90695bb47341d863ca1fe9
6
+ metadata.gz: f10f9dee4f42c14be00edc573d73bfaeea94ec13b10afe189a0c46109a3ec12df689e2e701818fa07e191ea4b91f19beaff5cfc93086e1b663b3a41e8b576e6d
7
+ data.tar.gz: a5cd959a91021972083af124b1ef371ac7c7916bf37b5c3e550d25722efc62a525310143199b308d237408640615f75f8994bdd5765bc76e6b2bad33a72f70de
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- xoggl (1.0.0)
4
+ xoggl (1.2.0)
5
5
  awesome_print
6
6
  gli
7
7
  holidays
data/bin/xoggl CHANGED
@@ -7,19 +7,31 @@ require 'xoggl'
7
7
  include GLI::App
8
8
 
9
9
  program_desc 'A simple Toggl cli'
10
+ version Xoggl::VERSION
10
11
 
11
12
  pre do
12
- @xoggl = Xoggl::Client.new
13
+ token_file = File.join(Dir.home, '.toggl')
14
+ api_token = IO.read(token_file).strip if File.file?(token_file)
15
+ exit_now!('Please create a `~/.toggl` file containing your API token (found in your Toggl profile https://toggl.com/app/profile)') if api_token.nil? || api_token.empty?
16
+
17
+ @xoggl = Xoggl::Client.new(api_token)
13
18
  end
14
19
 
15
- desc 'track days entries for a project'
20
+ desc 'Track days entries for a project'
21
+ long_desc 'Example: xoggl work \'My Project\' 2017-02-03 2017-02-15'
22
+ arg '<project_name>'
23
+ arg '<start_date>'
24
+ arg '<end_date>'
16
25
  command :work do |c|
17
26
  c.action do |_, _, args|
18
27
  @xoggl.log_work(args[1], args[2], args[0])
19
28
  end
20
29
  end
21
30
 
22
- desc 'track days entries for vacation'
31
+ desc 'Track days entries for vacation'
32
+ long_desc 'Example: xoggl vacation 2017-02-03 2017-02-15'
33
+ arg '<start_date>'
34
+ arg '<end_date>'
23
35
  command :vacation do |c|
24
36
  c.action do |_, _, args|
25
37
  @xoggl.log_vacation(args[0], args[1])
data/lib/xoggl/client.rb CHANGED
@@ -3,8 +3,8 @@ require 'holidays'
3
3
 
4
4
  module Xoggl
5
5
  class Client
6
- def initialize(toggl = TogglV8::API.new)
7
- @toggl = toggl
6
+ def initialize(api_token)
7
+ @toggl = TogglV8::API.new(api_token)
8
8
  @zone_offset = Time.now.utc_offset / 3600
9
9
  end
10
10
 
data/lib/xoggl/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Xoggl
2
- VERSION = '1.1.0'
2
+ VERSION = '1.2.0'
3
3
  end
@@ -1,7 +1,9 @@
1
+ TEST_API_TOKEN = '9b07c50c5126baf8c2d263b3dbfde3ee'
2
+
1
3
  describe Xoggl::Client do
2
4
  before :all do
3
- @toggl = TogglV8::API.new('9b07c50c5126baf8c2d263b3dbfde3ee')
4
- @client = Xoggl::Client.new(@toggl)
5
+ @client = Xoggl::Client.new(TEST_API_TOKEN)
6
+ @toggl = TogglV8::API.new(TEST_API_TOKEN)
5
7
  @workspace_id = @toggl.workspaces.first['id']
6
8
 
7
9
  @toggl.create_project('name' => 'Assenza', 'wid' => @workspace_id)
@@ -9,15 +11,11 @@ describe Xoggl::Client do
9
11
  end
10
12
 
11
13
  after :all do
12
- delete_all_projects(@toggl, @workspace_id)
13
- projects = @toggl.my_projects
14
- expect(projects).to be_empty
14
+ delete_projects
15
15
  end
16
16
 
17
17
  after :each do
18
- entries.each do |entry|
19
- @toggl.delete_time_entry(entry['id'])
20
- end
18
+ delete_entries
21
19
  end
22
20
 
23
21
  context 'vacation' do
@@ -71,15 +69,23 @@ describe Xoggl::Client do
71
69
  end
72
70
  end
73
71
 
72
+ private
73
+
74
+ def delete_entries
75
+ entries.each do |entry|
76
+ @toggl.delete_time_entry(entry['id'])
77
+ end
78
+ end
79
+
74
80
  def entries
75
81
  @toggl.get_time_entries(start_date: '2016-01-01', end_date: '2016-01-09')
76
82
  end
77
83
 
78
- def delete_all_projects(toggl, workspace_id)
79
- projects = toggl.projects(workspace_id)
84
+ def delete_projects
85
+ projects = @toggl.projects(@workspace_id)
80
86
  project_ids = projects.map { |p| p['id'] }
81
87
  return if project_ids.empty?
82
88
 
83
- toggl.delete_projects(project_ids)
89
+ @toggl.delete_projects(project_ids)
84
90
  end
85
91
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xoggl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Filippo Liverani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-23 00:00:00.000000000 Z
11
+ date: 2017-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler