timetrap 1.8.1 → 1.8.2
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.
- data/.travis.yml +5 -0
- data/CONTRIBUTORS +1 -0
- data/README.md +2 -0
- data/VERSION.yml +1 -1
- data/lib/timetrap/cli.rb +8 -0
- data/lib/timetrap/config.rb +3 -1
- data/spec/timetrap_spec.rb +23 -2
- data/timetrap.gemspec +4 -3
- metadata +91 -27
data/.travis.yml
ADDED
data/CONTRIBUTORS
CHANGED
data/README.md
CHANGED
@@ -359,6 +359,8 @@ See ``t configure`` for details. Currently supported options are:
|
|
359
359
|
|
360
360
|
**default_formatter**: The format to use when display is invoked without a `--format` option
|
361
361
|
|
362
|
+
**default_command**: The default command to invoke when you call `t`
|
363
|
+
|
362
364
|
Special Thanks
|
363
365
|
--------------
|
364
366
|
|
data/VERSION.yml
CHANGED
data/lib/timetrap/cli.rb
CHANGED
@@ -32,6 +32,7 @@ COMMAND is one of:
|
|
32
32
|
database_file: The file path of the sqlite database
|
33
33
|
append_notes_delimiter: delimiter used when appending notes via
|
34
34
|
t edit --append
|
35
|
+
default_command: The default command to run when calling t.
|
35
36
|
|
36
37
|
* display - Display the current timesheet or a specific. Pass `all' as SHEET
|
37
38
|
to display all unarchived sheets or `full' to display archived and
|
@@ -140,6 +141,9 @@ COMMAND is one of:
|
|
140
141
|
end
|
141
142
|
|
142
143
|
def invoke_command_if_valid
|
144
|
+
if args.unused.empty? && Timetrap::Config['default_command']
|
145
|
+
self.args = Getopt::Declare.new(USAGE.dup, Timetrap::Config['default_command'])
|
146
|
+
end
|
143
147
|
command = args.unused.shift
|
144
148
|
set_global_options
|
145
149
|
case (valid = commands.select{|name| name =~ %r|^#{command}|}).size
|
@@ -149,6 +153,10 @@ COMMAND is one of:
|
|
149
153
|
end
|
150
154
|
end
|
151
155
|
|
156
|
+
def valid_command(command)
|
157
|
+
return commands.include?(command)
|
158
|
+
end
|
159
|
+
|
152
160
|
def handle_invalid_command(command)
|
153
161
|
if !command
|
154
162
|
puts USAGE
|
data/lib/timetrap/config.rb
CHANGED
@@ -22,7 +22,9 @@ module Timetrap
|
|
22
22
|
"#{ENV['HOME']}/.timetrap/formatters"
|
23
23
|
],
|
24
24
|
# formatter to use when display is invoked without a --format option
|
25
|
-
'default_formatter' => 'text'
|
25
|
+
'default_formatter' => 'text',
|
26
|
+
# the default command to when you run `t`. default to printing usage.
|
27
|
+
'default_command' => nil
|
26
28
|
}
|
27
29
|
end
|
28
30
|
|
data/spec/timetrap_spec.rb
CHANGED
@@ -16,6 +16,7 @@ module Timetrap::StubConfig
|
|
16
16
|
options.each do |k, v|
|
17
17
|
Timetrap::Config.stub(:[]).with(k).and_return v
|
18
18
|
end
|
19
|
+
yield if block_given?
|
19
20
|
end
|
20
21
|
end
|
21
22
|
|
@@ -47,8 +48,28 @@ describe Timetrap do
|
|
47
48
|
|
48
49
|
describe 'with no command' do
|
49
50
|
it "should invoke --help" do
|
50
|
-
|
51
|
-
|
51
|
+
with_stubbed_config('default_command' => nil) do
|
52
|
+
invoke ''
|
53
|
+
$stdout.string.should include "Usage"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe 'with default command configured' do
|
59
|
+
it "should invoke the default command" do
|
60
|
+
with_stubbed_config('default_command' => 'n') do
|
61
|
+
invoke ''
|
62
|
+
$stdout.string.should include('*default: not running')
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should allow a complicated default command" do
|
67
|
+
with_stubbed_config('default_command' => 'display -f csv', 'formatter_search_paths' => '/tmp') do
|
68
|
+
invoke 'in foo bar'
|
69
|
+
invoke 'out'
|
70
|
+
invoke ''
|
71
|
+
$stdout.string.should include(',"foo bar"')
|
72
|
+
end
|
52
73
|
end
|
53
74
|
end
|
54
75
|
|
data/timetrap.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "timetrap"
|
8
|
-
s.version = "1.8.
|
8
|
+
s.version = "1.8.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Sam Goldstein"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-10-27"
|
13
13
|
s.description = "Command line time tracker"
|
14
14
|
s.email = "sgrock@gmail.com"
|
15
15
|
s.executables = ["t"]
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
]
|
20
20
|
s.files = [
|
21
21
|
".rspec",
|
22
|
+
".travis.yml",
|
22
23
|
"CONTRIBUTORS",
|
23
24
|
"Gemfile",
|
24
25
|
"LICENSE.txt",
|
@@ -46,7 +47,7 @@ Gem::Specification.new do |s|
|
|
46
47
|
s.homepage = "http://github.com/samg/timetrap/tree/master"
|
47
48
|
s.rdoc_options = ["--inline-source", "--charset=UTF-8"]
|
48
49
|
s.require_paths = ["lib"]
|
49
|
-
s.rubygems_version = "1.8.
|
50
|
+
s.rubygems_version = "1.8.24"
|
50
51
|
s.summary = "Command line time tracker"
|
51
52
|
|
52
53
|
if s.respond_to? :specification_version then
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: timetrap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sequel
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 3.9.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.9.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: sqlite3
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ~>
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: 1.3.3
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.3.3
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: chronic
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: 0.6.4
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.6.4
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: getopt-declare
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '1.28'
|
55
70
|
type: :runtime
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.28'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: json
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: 1.4.6
|
66
86
|
type: :runtime
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.4.6
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: icalendar
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ~>
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: 1.1.5
|
77
102
|
type: :runtime
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 1.1.5
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: rake
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: '0'
|
88
118
|
type: :runtime
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: jeweler
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ! '>='
|
@@ -98,10 +133,15 @@ dependencies:
|
|
98
133
|
version: '0'
|
99
134
|
type: :development
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
102
142
|
- !ruby/object:Gem::Dependency
|
103
143
|
name: sequel
|
104
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
105
145
|
none: false
|
106
146
|
requirements:
|
107
147
|
- - ! '>='
|
@@ -109,10 +149,15 @@ dependencies:
|
|
109
149
|
version: 3.9.0
|
110
150
|
type: :runtime
|
111
151
|
prerelease: false
|
112
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 3.9.0
|
113
158
|
- !ruby/object:Gem::Dependency
|
114
159
|
name: sqlite3
|
115
|
-
requirement:
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
116
161
|
none: false
|
117
162
|
requirements:
|
118
163
|
- - ~>
|
@@ -120,10 +165,15 @@ dependencies:
|
|
120
165
|
version: 1.3.3
|
121
166
|
type: :runtime
|
122
167
|
prerelease: false
|
123
|
-
version_requirements:
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ~>
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 1.3.3
|
124
174
|
- !ruby/object:Gem::Dependency
|
125
175
|
name: chronic
|
126
|
-
requirement:
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
127
177
|
none: false
|
128
178
|
requirements:
|
129
179
|
- - ! '>='
|
@@ -131,10 +181,15 @@ dependencies:
|
|
131
181
|
version: 0.6.4
|
132
182
|
type: :runtime
|
133
183
|
prerelease: false
|
134
|
-
version_requirements:
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: 0.6.4
|
135
190
|
- !ruby/object:Gem::Dependency
|
136
191
|
name: getopt-declare
|
137
|
-
requirement:
|
192
|
+
requirement: !ruby/object:Gem::Requirement
|
138
193
|
none: false
|
139
194
|
requirements:
|
140
195
|
- - ! '>='
|
@@ -142,7 +197,12 @@ dependencies:
|
|
142
197
|
version: '1.28'
|
143
198
|
type: :runtime
|
144
199
|
prerelease: false
|
145
|
-
version_requirements:
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ! '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '1.28'
|
146
206
|
description: Command line time tracker
|
147
207
|
email: sgrock@gmail.com
|
148
208
|
executables:
|
@@ -153,6 +213,7 @@ extra_rdoc_files:
|
|
153
213
|
- README.md
|
154
214
|
files:
|
155
215
|
- .rspec
|
216
|
+
- .travis.yml
|
156
217
|
- CONTRIBUTORS
|
157
218
|
- Gemfile
|
158
219
|
- LICENSE.txt
|
@@ -190,6 +251,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
190
251
|
- - ! '>='
|
191
252
|
- !ruby/object:Gem::Version
|
192
253
|
version: '0'
|
254
|
+
segments:
|
255
|
+
- 0
|
256
|
+
hash: 799045396901513239
|
193
257
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
258
|
none: false
|
195
259
|
requirements:
|
@@ -198,7 +262,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
262
|
version: '0'
|
199
263
|
requirements: []
|
200
264
|
rubyforge_project:
|
201
|
-
rubygems_version: 1.8.
|
265
|
+
rubygems_version: 1.8.24
|
202
266
|
signing_key:
|
203
267
|
specification_version: 3
|
204
268
|
summary: Command line time tracker
|