paradeiser 0.2.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/Guardfile +1 -0
- data/README.md +98 -6
- data/TODO.md +22 -6
- data/VISION.md +171 -26
- data/bin/par +20 -4
- data/lib/paradeiser/controllers/breaks_controller.rb +0 -1
- data/lib/paradeiser/controllers/controller.rb +15 -1
- data/lib/paradeiser/controllers/paradeiser_controller.rb +23 -1
- data/lib/paradeiser/controllers/pomodori_controller.rb +23 -1
- data/lib/paradeiser/errors.rb +6 -0
- data/lib/paradeiser/executor.rb +1 -1
- data/lib/paradeiser/initializers/inflections.rb +3 -0
- data/lib/paradeiser/models/break.rb +1 -0
- data/lib/paradeiser/models/pomodoro.rb +13 -1
- data/lib/paradeiser/models/repository.rb +11 -1
- data/lib/paradeiser/models/scheduled.rb +7 -1
- data/lib/paradeiser/refinements/pluralize.rb +10 -0
- data/lib/paradeiser/router.rb +0 -2
- data/lib/paradeiser/version.rb +1 -1
- data/lib/paradeiser/view.rb +1 -1
- data/lib/paradeiser/views/breaks/finish.erb +1 -0
- data/lib/paradeiser/views/breaks/start.erb +1 -0
- data/lib/paradeiser/views/paradeiser/init.erb +1 -1
- data/lib/paradeiser/views/paradeiser/report.erb +10 -4
- data/lib/paradeiser/views/paradeiser/status.erb +2 -1
- data/lib/paradeiser/views/pomodori/annotate.erb +1 -0
- data/lib/paradeiser/views/pomodori/cancel.erb +1 -0
- data/lib/paradeiser/views/pomodori/interrupt.erb +1 -0
- data/lib/paradeiser/views/pomodori/log.erb +1 -0
- data/lib/paradeiser/views/pomodori/start.erb +1 -1
- data/paradeiser.gemspec +2 -0
- data/test/bin/notify-send +1 -0
- data/test/helper.rb +7 -24
- data/test/integration/test_annotate.rb +19 -0
- data/test/integration/test_finish.rb +9 -0
- data/test/integration/test_interrupt.rb +9 -0
- data/test/integration/test_log.rb +12 -0
- data/test/integration/test_no_args.rb +7 -0
- data/test/integration/test_start.rb +7 -0
- data/test/integration/test_status.rb +10 -0
- data/test/integration/test_unknown.rb +7 -0
- data/test/lib/at_mock.rb +1 -1
- data/test/lib/controller_test.rb +25 -0
- data/test/lib/integration_test.rb +45 -0
- data/test/lib/paradeiser_controller_test.rb +7 -0
- data/test/lib/view_test.rb +12 -0
- data/test/unit/test_break.rb +7 -44
- data/test/unit/test_break_view.rb +22 -0
- data/test/unit/test_breaks_controller.rb +66 -0
- data/test/unit/test_paradeiser_controller_export.rb +107 -0
- data/test/unit/test_paradeiser_controller_report.rb +73 -26
- data/test/unit/test_paradeiser_controller_status.rb +42 -24
- data/test/unit/test_paradeiser_view_init.rb +7 -0
- data/test/unit/test_paradeiser_view_report.rb +132 -0
- data/test/unit/test_paradeiser_view_status.rb +17 -0
- data/test/unit/test_pomodori_controller.rb +241 -33
- data/test/unit/test_pomodori_view.rb +26 -13
- data/test/unit/test_pomodoro.rb +23 -81
- data/test/unit/test_pomodoro_hooks.rb +12 -25
- data/test/unit/test_repository.rb +5 -21
- data/test/unit/test_scheduler.rb +1 -1
- metadata +61 -8
- data/test/integration/test_par.rb +0 -17
- data/test/unit/test_break_controller.rb +0 -56
- data/test/unit/test_paradeiser_view.rb +0 -66
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paradeiser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicholas E. Rabenau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-08-
|
11
|
+
date: 2013-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: activemodel
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: guard-minitest
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -275,13 +289,20 @@ files:
|
|
275
289
|
- lib/paradeiser/models/scheduler.rb
|
276
290
|
- lib/paradeiser/models/status.rb
|
277
291
|
- lib/paradeiser/refinements/numeric.rb
|
292
|
+
- lib/paradeiser/refinements/pluralize.rb
|
278
293
|
- lib/paradeiser/router.rb
|
279
294
|
- lib/paradeiser/version.rb
|
280
295
|
- lib/paradeiser/view.rb
|
296
|
+
- lib/paradeiser/views/breaks/finish.erb
|
297
|
+
- lib/paradeiser/views/breaks/start.erb
|
281
298
|
- lib/paradeiser/views/paradeiser/init.erb
|
282
299
|
- lib/paradeiser/views/paradeiser/report.erb
|
283
300
|
- lib/paradeiser/views/paradeiser/status.erb
|
301
|
+
- lib/paradeiser/views/pomodori/annotate.erb
|
302
|
+
- lib/paradeiser/views/pomodori/cancel.erb
|
284
303
|
- lib/paradeiser/views/pomodori/finish.erb
|
304
|
+
- lib/paradeiser/views/pomodori/interrupt.erb
|
305
|
+
- lib/paradeiser/views/pomodori/log.erb
|
285
306
|
- lib/paradeiser/views/pomodori/start.erb
|
286
307
|
- paradeiser.gemspec
|
287
308
|
- templates/linux/hooks/after-finish-break
|
@@ -292,22 +313,38 @@ files:
|
|
292
313
|
- templates/mac/hooks/after-finish-pomodoro
|
293
314
|
- templates/mac/hooks/after-start-break
|
294
315
|
- templates/mac/hooks/after-start-pomodoro
|
316
|
+
- test/bin/notify-send
|
295
317
|
- test/helper.rb
|
296
|
-
- test/integration/
|
318
|
+
- test/integration/test_annotate.rb
|
319
|
+
- test/integration/test_finish.rb
|
320
|
+
- test/integration/test_interrupt.rb
|
321
|
+
- test/integration/test_log.rb
|
322
|
+
- test/integration/test_no_args.rb
|
323
|
+
- test/integration/test_start.rb
|
324
|
+
- test/integration/test_status.rb
|
325
|
+
- test/integration/test_unknown.rb
|
297
326
|
- test/lib/assertions.rb
|
298
327
|
- test/lib/at_mock.rb
|
328
|
+
- test/lib/controller_test.rb
|
329
|
+
- test/lib/integration_test.rb
|
299
330
|
- test/lib/options_mock.rb
|
331
|
+
- test/lib/paradeiser_controller_test.rb
|
300
332
|
- test/lib/process_status_mock.rb
|
301
333
|
- test/lib/pstore_mock.rb
|
302
334
|
- test/lib/schedulable_mock.rb
|
335
|
+
- test/lib/view_test.rb
|
303
336
|
- test/templates/hooks/pre-finish
|
304
337
|
- test/unit/test_break.rb
|
305
|
-
- test/unit/
|
338
|
+
- test/unit/test_break_view.rb
|
339
|
+
- test/unit/test_breaks_controller.rb
|
306
340
|
- test/unit/test_interrupt.rb
|
341
|
+
- test/unit/test_paradeiser_controller_export.rb
|
307
342
|
- test/unit/test_paradeiser_controller_init.rb
|
308
343
|
- test/unit/test_paradeiser_controller_report.rb
|
309
344
|
- test/unit/test_paradeiser_controller_status.rb
|
310
|
-
- test/unit/
|
345
|
+
- test/unit/test_paradeiser_view_init.rb
|
346
|
+
- test/unit/test_paradeiser_view_report.rb
|
347
|
+
- test/unit/test_paradeiser_view_status.rb
|
311
348
|
- test/unit/test_pomodori_controller.rb
|
312
349
|
- test/unit/test_pomodori_view.rb
|
313
350
|
- test/unit/test_pomodoro.rb
|
@@ -341,22 +378,38 @@ signing_key:
|
|
341
378
|
specification_version: 4
|
342
379
|
summary: Command-line tool for the Pomodoro Technique
|
343
380
|
test_files:
|
381
|
+
- test/bin/notify-send
|
344
382
|
- test/helper.rb
|
345
|
-
- test/integration/
|
383
|
+
- test/integration/test_annotate.rb
|
384
|
+
- test/integration/test_finish.rb
|
385
|
+
- test/integration/test_interrupt.rb
|
386
|
+
- test/integration/test_log.rb
|
387
|
+
- test/integration/test_no_args.rb
|
388
|
+
- test/integration/test_start.rb
|
389
|
+
- test/integration/test_status.rb
|
390
|
+
- test/integration/test_unknown.rb
|
346
391
|
- test/lib/assertions.rb
|
347
392
|
- test/lib/at_mock.rb
|
393
|
+
- test/lib/controller_test.rb
|
394
|
+
- test/lib/integration_test.rb
|
348
395
|
- test/lib/options_mock.rb
|
396
|
+
- test/lib/paradeiser_controller_test.rb
|
349
397
|
- test/lib/process_status_mock.rb
|
350
398
|
- test/lib/pstore_mock.rb
|
351
399
|
- test/lib/schedulable_mock.rb
|
400
|
+
- test/lib/view_test.rb
|
352
401
|
- test/templates/hooks/pre-finish
|
353
402
|
- test/unit/test_break.rb
|
354
|
-
- test/unit/
|
403
|
+
- test/unit/test_break_view.rb
|
404
|
+
- test/unit/test_breaks_controller.rb
|
355
405
|
- test/unit/test_interrupt.rb
|
406
|
+
- test/unit/test_paradeiser_controller_export.rb
|
356
407
|
- test/unit/test_paradeiser_controller_init.rb
|
357
408
|
- test/unit/test_paradeiser_controller_report.rb
|
358
409
|
- test/unit/test_paradeiser_controller_status.rb
|
359
|
-
- test/unit/
|
410
|
+
- test/unit/test_paradeiser_view_init.rb
|
411
|
+
- test/unit/test_paradeiser_view_report.rb
|
412
|
+
- test/unit/test_paradeiser_view_status.rb
|
360
413
|
- test/unit/test_pomodori_controller.rb
|
361
414
|
- test/unit/test_pomodori_view.rb
|
362
415
|
- test/unit/test_pomodoro.rb
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
class TestPar < MiniTest::Test
|
4
|
-
PAR = 'bin/par'
|
5
|
-
|
6
|
-
def test_no_args_defaults_to_help
|
7
|
-
out, err, status = Open3.capture3(PAR)
|
8
|
-
assert_equal(0, status.exitstatus, "Expected exit status to be 0, but it was #{status.exitstatus}. STDERR contains: #{err}")
|
9
|
-
assert_empty(err)
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_unknown
|
13
|
-
out, err, status = Open3.capture3("#{PAR} unknown")
|
14
|
-
refute_equal(0, status.exitstatus)
|
15
|
-
refute_empty(err)
|
16
|
-
end
|
17
|
-
end
|
@@ -1,56 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
class TestBreakController < MiniTest::Test
|
4
|
-
def setup
|
5
|
-
@backend = PStoreMock.new
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_break
|
9
|
-
br3k, has_output = invoke(:start, '@break', 'has_output')
|
10
|
-
assert_equal(:active, br3k.status_name)
|
11
|
-
assert_equal(false, has_output)
|
12
|
-
assert_equal(1, @backend.size)
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_break_active
|
16
|
-
invoke(:start)
|
17
|
-
assert_equal(1, @backend.size)
|
18
|
-
|
19
|
-
assert_raises SingletonError do
|
20
|
-
invoke(:start)
|
21
|
-
end
|
22
|
-
assert_equal(1, @backend.size)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_finish
|
26
|
-
invoke(:start)
|
27
|
-
br3ak, has_output = invoke(:finish, '@break', 'has_output')
|
28
|
-
assert_equal(:finished, br3ak.status_name)
|
29
|
-
assert_equal(false, has_output)
|
30
|
-
assert_equal(1, @backend.size)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_finish_idle
|
34
|
-
assert_raises NotActiveError do
|
35
|
-
invoke(:finish)
|
36
|
-
end
|
37
|
-
assert_equal(0, @backend.size)
|
38
|
-
end
|
39
|
-
private
|
40
|
-
|
41
|
-
def invoke(method, *attributes)
|
42
|
-
controller = BreaksController.new(method)
|
43
|
-
|
44
|
-
Repository.stub :backend, @backend do
|
45
|
-
Scheduler.stub(:add, nil) do
|
46
|
-
Scheduler.stub(:clear, nil) do
|
47
|
-
controller.call(nil, nil)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
attributes.map do |attribute|
|
53
|
-
controller.get_binding.eval(attribute)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
@@ -1,66 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
class TestParadeiserView < MiniTest::Test
|
4
|
-
def setup
|
5
|
-
@pom = Pomodoro.new
|
6
|
-
@pom.id = 1
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_status_idle
|
10
|
-
out, err = render(:status)
|
11
|
-
assert_match(/^Current state is idle.$/m, out)
|
12
|
-
assert_empty(err)
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_status_active
|
16
|
-
start!
|
17
|
-
out, err = render(:status)
|
18
|
-
assert_match(/^Pomodoro #1 is active for another \d{1,2} minutes \(started at .*\)\.$/m, out)
|
19
|
-
assert_empty(err)
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_status_finished
|
23
|
-
start!
|
24
|
-
finish!
|
25
|
-
out, err = render(:status)
|
26
|
-
assert_match(/^Nothing active. Last pomodoro was finished at .*\.$/m, out)
|
27
|
-
assert_empty(err)
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_report_empty
|
31
|
-
@pom = []
|
32
|
-
out, err = render(:report)
|
33
|
-
assert_equal(1, out.lines.size)
|
34
|
-
assert_match(/^ID \| Name \| Status \| Started \| Ended | Interrupts$/m, out.lines.first)
|
35
|
-
assert_empty(err)
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_report_one_active
|
39
|
-
start!
|
40
|
-
@pom = [@pom]
|
41
|
-
out, err = render(:report)
|
42
|
-
assert_equal(2, out.lines.size)
|
43
|
-
assert_match(/^ID \| Name \| Status \| Started \| Ended | Interrupts$/m, out.lines[0])
|
44
|
-
assert_match(/^1 \| pomodoro \| active \| \d{1,2}:\d{1,2} \| \| \d+ I, \d+ E$/m, out.lines[1])
|
45
|
-
assert_empty(err)
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_report_one_finished
|
49
|
-
start!
|
50
|
-
finish!
|
51
|
-
@pom = [@pom]
|
52
|
-
out, err = render(:report)
|
53
|
-
assert_equal(2, out.lines.size)
|
54
|
-
assert_match(/^ID \| Name \| Status \| Started \| Ended | Interrupts$/m, out.lines[0])
|
55
|
-
assert_match(/^1 \| pomodoro \| finished \| \d{1,2}:\d{1,2} \| \d{1,2}:\d{1,2} \| \d+ I, \d+ E$/m, out.lines[1])
|
56
|
-
assert_empty(err)
|
57
|
-
end
|
58
|
-
|
59
|
-
private
|
60
|
-
|
61
|
-
def render(method)
|
62
|
-
capture_io do
|
63
|
-
View.new('Paradeiser', method).render(binding)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|