timetrap 1.8.12 → 1.8.13

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: ce19a1337e4238314c4b8559d860e3b5fe060e35
4
- data.tar.gz: e642ab919336be668b2e1a748aceccf954fda443
3
+ metadata.gz: 4d18f6060d9238cea925da011e99bc4c41afb503
4
+ data.tar.gz: f683279029600c23ae088dcd3160dfd9ae1a5e12
5
5
  SHA512:
6
- metadata.gz: dc45d1614cb7fc9c8e341bdb4d642c46f9ae9a2ff8b0323bf8bd7c13153d3830d47eb27e3d50cbfa468e10619893f32c065aee72f23264a0f2e012edf24d24ce
7
- data.tar.gz: 6ce14e2dce4dd692c0422b1fc7772b9fbe7b07404fd65f073558d1ef28b961d3e2d96884ba06e3c59fa5b3e3d72170644f801488214ae2f42716f00a63627e40
6
+ metadata.gz: a234bafa3c03b01b3b81942ef5e3e7c6216b835dcc51a62811d47da81a595d301ac376f7e6b0cb4cf1a4a77deb52447162e8be9f03bda4eb1741c5f346df1b1f
7
+ data.tar.gz: 550652a4832b0050803c8187b62f9eb42880e7fdffe97d0eefa87a63fb964b3dfeb1fd2f97bdd9cd5f71f7ccb31f076c5ff6ec90d4531f0069f7e0cbe836116c
@@ -12,15 +12,23 @@ module Timetrap
12
12
  h
13
13
  end
14
14
  longest_note = entries.inject('Notes'.length) {|l, e| [e.note.to_s.rstrip.length, l].max}
15
+ max_id_length = if Timetrap::CLI.args['-v']
16
+ entries.inject(3) {|l, e| [e.id.to_s.length, l].max}
17
+ else
18
+ 3
19
+ end
15
20
  (sheet_names = sheets.keys.sort).each do |sheet|
21
+
16
22
  self.output << "Timesheet: #{sheet}\n"
17
- id_heading = Timetrap::CLI.args['-v'] ? 'Id' : ' '
23
+ id_heading = Timetrap::CLI.args['-v'] ? "Id#{' ' * (max_id_length - 3)}" : " "
18
24
  self.output << "#{id_heading} Day Start End Duration Notes\n"
19
25
  last_start = nil
20
26
  from_current_day = []
27
+
28
+
21
29
  sheets[sheet].each_with_index do |e, i|
22
30
  from_current_day << e
23
- self.output << "%-4s%16s%11s -%9s%10s %s\n" % [
31
+ self.output << "%-#{max_id_length + 1}s%16s%11s -%9s%10s %s\n" % [
24
32
  (Timetrap::CLI.args['-v'] ? e.id : ''),
25
33
  format_date_if_new(e.start, last_start),
26
34
  format_time(e.start),
@@ -31,14 +39,14 @@ module Timetrap
31
39
 
32
40
  nxt = sheets[sheet].to_a[i+1]
33
41
  if nxt == nil or !same_day?(e.start, nxt.start)
34
- self.output << "%52s\n" % format_total(from_current_day)
42
+ self.output << "%#{49 + max_id_length}s\n" % format_total(from_current_day)
35
43
  from_current_day = []
36
44
  else
37
45
  end
38
46
  last_start = e.start
39
47
  end
40
- self.output << " %s\n" % ('-'*(52+longest_note))
41
- self.output << " Total%43s\n" % format_total(sheets[sheet])
48
+ self.output << "#{' ' * (max_id_length + 1)}%s\n" % ('-'*(52+longest_note))
49
+ self.output << "#{' ' * (max_id_length + 1)}Total%43s\n" % format_total(sheets[sheet])
42
50
  self.output << "\n" unless sheet == sheet_names.last
43
51
  end
44
52
  if sheets.size > 1
@@ -1,3 +1,3 @@
1
1
  module Timetrap
2
- VERSION = '1.8.12'
2
+ VERSION = '1.8.13'
3
3
  end
@@ -284,6 +284,19 @@ Id Day Start End Duration Notes
284
284
  Total 8:00:00
285
285
  OUTPUT
286
286
 
287
+ @desired_output_with_long_ids = <<-OUTPUT
288
+ Timesheet: SpecSheet
289
+ Id Day Start End Duration Notes
290
+ 3 Fri Oct 03, 2008 12:00:00 - 14:00:00 2:00:00 entry 1
291
+ 2 16:00:00 - 18:00:00 2:00:00 entry 2
292
+ 4:00:00
293
+ 40000 Sun Oct 05, 2008 16:00:00 - 18:00:00 2:00:00 entry 3
294
+ 5 18:00:00 - 2:00:00 entry 4
295
+ 4:00:00
296
+ -----------------------------------------------------------
297
+ Total 8:00:00
298
+ OUTPUT
299
+
287
300
  @desired_output_for_all = <<-OUTPUT
288
301
  Timesheet: SpecSheet
289
302
  Day Start End Duration Notes
@@ -339,6 +352,19 @@ Grand Total 10:00:00
339
352
  $stdout.string.should == @desired_output_with_ids
340
353
  end
341
354
 
355
+ it "should properly format a timesheet with long ids" do
356
+ Timetrap::DB["UPDATE entries SET id = 40000 WHERE id = 4"].all
357
+ invoke 'display S --ids'
358
+ $stdout.string.should == @desired_output_with_long_ids
359
+ end
360
+
361
+ it "should properly format a timesheet with no ids even if long ids are in the db" do
362
+ Timetrap::DB["UPDATE entries SET id = 40000 WHERE id = 4"].all
363
+ invoke 'display S'
364
+ $stdout.string.should == @desired_output
365
+ end
366
+
367
+
342
368
  it "should display all timesheets" do
343
369
  Timetrap::Timer.current_sheet = 'another'
344
370
  invoke 'display all'
@@ -1097,6 +1123,17 @@ END:VCALENDAR
1097
1123
  end
1098
1124
  end
1099
1125
  end
1126
+
1127
+ describe '--version' do
1128
+ it 'should print the version number if asked' do
1129
+ begin
1130
+ invoke '--version'
1131
+ rescue SystemExit #Getopt::Declare calls exit after --version is invoked
1132
+ end
1133
+
1134
+ $stdout.string.should include(::Timetrap::VERSION)
1135
+ end
1136
+ end
1100
1137
  end
1101
1138
  end
1102
1139
 
metadata CHANGED
@@ -1,139 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timetrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.12
4
+ version: 1.8.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Goldstein
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-23 00:00:00.000000000 Z
11
+ date: 2014-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '2.13'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.13'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: fakefs
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: icalendar
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 1.3.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.3.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: json
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: sequel
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: 4.0.0
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 4.0.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: sqlite3
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ~>
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: 1.3.3
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ~>
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: 1.3.3
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: chronic
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: 0.10.2
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ~>
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 0.10.2
139
139
  description: Command line time tracker
@@ -146,9 +146,9 @@ executables:
146
146
  extensions: []
147
147
  extra_rdoc_files: []
148
148
  files:
149
- - .gitignore
150
- - .rspec
151
- - .travis.yml
149
+ - ".gitignore"
150
+ - ".rspec"
151
+ - ".travis.yml"
152
152
  - CONTRIBUTORS
153
153
  - Gemfile
154
154
  - LICENSE.txt
@@ -187,17 +187,17 @@ require_paths:
187
187
  - lib
188
188
  required_ruby_version: !ruby/object:Gem::Requirement
189
189
  requirements:
190
- - - '>='
190
+ - - ">="
191
191
  - !ruby/object:Gem::Version
192
192
  version: '0'
193
193
  required_rubygems_version: !ruby/object:Gem::Requirement
194
194
  requirements:
195
- - - '>='
195
+ - - ">="
196
196
  - !ruby/object:Gem::Version
197
197
  version: '0'
198
198
  requirements: []
199
199
  rubyforge_project:
200
- rubygems_version: 2.0.2
200
+ rubygems_version: 2.2.0
201
201
  signing_key:
202
202
  specification_version: 4
203
203
  summary: Command line time tracker