timetrap 1.8.1 → 1.8.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - 1.9.3
@@ -6,3 +6,4 @@
6
6
  * Ryan Funduk
7
7
  * Christopher Peplin
8
8
  * Johan Venant
9
+ * Steven Ghyselbrecht
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
 
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 1
3
3
  :minor: 8
4
- :patch: 1
4
+ :patch: 2
@@ -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
@@ -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
 
@@ -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
- invoke ''
51
- $stdout.string.should include "Usage"
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
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "timetrap"
8
- s.version = "1.8.1"
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-04-04"
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.10"
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.1
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-04-04 00:00:00.000000000 Z
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: &70257588611440 !ruby/object:Gem::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: *70257588611440
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: &70257588610880 !ruby/object:Gem::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: *70257588610880
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: &70257588636460 !ruby/object:Gem::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: *70257588636460
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: &70257588635400 !ruby/object:Gem::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: *70257588635400
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: &70257588634220 !ruby/object:Gem::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: *70257588634220
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: &70257588633020 !ruby/object:Gem::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: *70257588633020
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: &70257588632140 !ruby/object:Gem::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: *70257588632140
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: &70257588631220 !ruby/object:Gem::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: *70257588631220
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: &70257588630640 !ruby/object:Gem::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: *70257588630640
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: &70257588630160 !ruby/object:Gem::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: *70257588630160
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: &70257588643640 !ruby/object:Gem::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: *70257588643640
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: &70257588638940 !ruby/object:Gem::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: *70257588638940
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.10
265
+ rubygems_version: 1.8.24
202
266
  signing_key:
203
267
  specification_version: 3
204
268
  summary: Command line time tracker