paradeiser 0.2.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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