paradeiser 0.2.0 → 0.4.0

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.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/Guardfile +1 -0
  4. data/README.md +98 -6
  5. data/TODO.md +22 -6
  6. data/VISION.md +171 -26
  7. data/bin/par +20 -4
  8. data/lib/paradeiser/controllers/breaks_controller.rb +0 -1
  9. data/lib/paradeiser/controllers/controller.rb +15 -1
  10. data/lib/paradeiser/controllers/paradeiser_controller.rb +23 -1
  11. data/lib/paradeiser/controllers/pomodori_controller.rb +23 -1
  12. data/lib/paradeiser/errors.rb +6 -0
  13. data/lib/paradeiser/executor.rb +1 -1
  14. data/lib/paradeiser/initializers/inflections.rb +3 -0
  15. data/lib/paradeiser/models/break.rb +1 -0
  16. data/lib/paradeiser/models/pomodoro.rb +13 -1
  17. data/lib/paradeiser/models/repository.rb +11 -1
  18. data/lib/paradeiser/models/scheduled.rb +7 -1
  19. data/lib/paradeiser/refinements/pluralize.rb +10 -0
  20. data/lib/paradeiser/router.rb +0 -2
  21. data/lib/paradeiser/version.rb +1 -1
  22. data/lib/paradeiser/view.rb +1 -1
  23. data/lib/paradeiser/views/breaks/finish.erb +1 -0
  24. data/lib/paradeiser/views/breaks/start.erb +1 -0
  25. data/lib/paradeiser/views/paradeiser/init.erb +1 -1
  26. data/lib/paradeiser/views/paradeiser/report.erb +10 -4
  27. data/lib/paradeiser/views/paradeiser/status.erb +2 -1
  28. data/lib/paradeiser/views/pomodori/annotate.erb +1 -0
  29. data/lib/paradeiser/views/pomodori/cancel.erb +1 -0
  30. data/lib/paradeiser/views/pomodori/interrupt.erb +1 -0
  31. data/lib/paradeiser/views/pomodori/log.erb +1 -0
  32. data/lib/paradeiser/views/pomodori/start.erb +1 -1
  33. data/paradeiser.gemspec +2 -0
  34. data/test/bin/notify-send +1 -0
  35. data/test/helper.rb +7 -24
  36. data/test/integration/test_annotate.rb +19 -0
  37. data/test/integration/test_finish.rb +9 -0
  38. data/test/integration/test_interrupt.rb +9 -0
  39. data/test/integration/test_log.rb +12 -0
  40. data/test/integration/test_no_args.rb +7 -0
  41. data/test/integration/test_start.rb +7 -0
  42. data/test/integration/test_status.rb +10 -0
  43. data/test/integration/test_unknown.rb +7 -0
  44. data/test/lib/at_mock.rb +1 -1
  45. data/test/lib/controller_test.rb +25 -0
  46. data/test/lib/integration_test.rb +45 -0
  47. data/test/lib/paradeiser_controller_test.rb +7 -0
  48. data/test/lib/view_test.rb +12 -0
  49. data/test/unit/test_break.rb +7 -44
  50. data/test/unit/test_break_view.rb +22 -0
  51. data/test/unit/test_breaks_controller.rb +66 -0
  52. data/test/unit/test_paradeiser_controller_export.rb +107 -0
  53. data/test/unit/test_paradeiser_controller_report.rb +73 -26
  54. data/test/unit/test_paradeiser_controller_status.rb +42 -24
  55. data/test/unit/test_paradeiser_view_init.rb +7 -0
  56. data/test/unit/test_paradeiser_view_report.rb +132 -0
  57. data/test/unit/test_paradeiser_view_status.rb +17 -0
  58. data/test/unit/test_pomodori_controller.rb +241 -33
  59. data/test/unit/test_pomodori_view.rb +26 -13
  60. data/test/unit/test_pomodoro.rb +23 -81
  61. data/test/unit/test_pomodoro_hooks.rb +12 -25
  62. data/test/unit/test_repository.rb +5 -21
  63. data/test/unit/test_scheduler.rb +1 -1
  64. metadata +61 -8
  65. data/test/integration/test_par.rb +0 -17
  66. data/test/unit/test_break_controller.rb +0 -56
  67. 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.2.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-16 00:00:00.000000000 Z
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/test_par.rb
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/test_break_controller.rb
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/test_paradeiser_view.rb
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/test_par.rb
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/test_break_controller.rb
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/test_paradeiser_view.rb
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