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.
- 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
|