xoggl 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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