vedeu 0.4.2 → 0.4.3

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 (95) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +3 -0
  3. data/Rakefile +16 -7
  4. data/examples/borders_app.rb +58 -55
  5. data/lib/vedeu/api.rb +1 -1
  6. data/lib/vedeu/application.rb +25 -25
  7. data/lib/vedeu/bindings.rb +5 -7
  8. data/lib/vedeu/configuration/api.rb +0 -2
  9. data/lib/vedeu/configuration/cli.rb +0 -2
  10. data/lib/vedeu/configuration/configuration.rb +0 -2
  11. data/lib/vedeu/cursor/cursor.rb +0 -2
  12. data/lib/vedeu/debug.rb +2 -2
  13. data/lib/vedeu/distributed/server.rb +0 -2
  14. data/lib/vedeu/dsl/components/border.rb +15 -19
  15. data/lib/vedeu/dsl/components/geometry.rb +14 -18
  16. data/lib/vedeu/dsl/components/keymap.rb +28 -32
  17. data/lib/vedeu/dsl/composition.rb +27 -9
  18. data/lib/vedeu/events/all.rb +1 -0
  19. data/lib/vedeu/events/event.rb +6 -8
  20. data/lib/vedeu/events/events.rb +10 -0
  21. data/lib/vedeu/events/trigger.rb +6 -12
  22. data/lib/vedeu/geometry/grid.rb +0 -2
  23. data/lib/vedeu/geometry/position.rb +0 -2
  24. data/lib/vedeu/geometry/position_validator.rb +0 -14
  25. data/lib/vedeu/input/input.rb +0 -2
  26. data/lib/vedeu/models/collection.rb +0 -2
  27. data/lib/vedeu/models/focus.rb +0 -1
  28. data/lib/vedeu/models/geometry.rb +7 -3
  29. data/lib/vedeu/models/group.rb +0 -2
  30. data/lib/vedeu/models/menu.rb +23 -29
  31. data/lib/vedeu/models/model.rb +0 -2
  32. data/lib/vedeu/models/view/char.rb +14 -10
  33. data/lib/vedeu/models/view/composition.rb +7 -9
  34. data/lib/vedeu/models/view/interface.rb +0 -1
  35. data/lib/vedeu/models/view/line.rb +2 -3
  36. data/lib/vedeu/models/view/stream.rb +0 -3
  37. data/lib/vedeu/output/all.rb +1 -0
  38. data/lib/vedeu/output/background.rb +0 -2
  39. data/lib/vedeu/output/colour.rb +0 -2
  40. data/lib/vedeu/output/compositor.rb +0 -2
  41. data/lib/vedeu/output/foreground.rb +0 -2
  42. data/lib/vedeu/output/html_renderer.rb +6 -0
  43. data/lib/vedeu/output/index_position.rb +35 -0
  44. data/lib/vedeu/output/output.rb +3 -1
  45. data/lib/vedeu/output/position_index.rb +2 -2
  46. data/lib/vedeu/output/presentation.rb +0 -2
  47. data/lib/vedeu/output/style.rb +0 -1
  48. data/lib/vedeu/output/translator.rb +18 -20
  49. data/lib/vedeu/output/viewport.rb +76 -51
  50. data/lib/vedeu/output/virtual_terminal.rb +2 -1
  51. data/lib/vedeu/repositories/all.rb +4 -4
  52. data/lib/vedeu/repositories/repository.rb +0 -2
  53. data/lib/vedeu/support/coercions.rb +0 -2
  54. data/lib/vedeu/support/common.rb +0 -2
  55. data/lib/vedeu/support/esc.rb +0 -2
  56. data/lib/vedeu/support/log.rb +86 -3
  57. data/lib/vedeu/support/refresh.rb +0 -2
  58. data/lib/vedeu/support/sentence.rb +5 -9
  59. data/lib/vedeu/support/terminal.rb +0 -2
  60. data/lib/vedeu/support/trace.rb +0 -2
  61. data/lib/vedeu/support/visible.rb +1 -1
  62. data/test/lib/vedeu/configuration/api_test.rb +14 -0
  63. data/test/lib/vedeu/configuration/configuration_test.rb +10 -0
  64. data/test/lib/vedeu/distributed/server_test.rb +5 -0
  65. data/test/lib/vedeu/dsl/components/border_test.rb +7 -0
  66. data/test/lib/vedeu/dsl/components/geometry_test.rb +8 -3
  67. data/test/lib/vedeu/dsl/interface_test.rb +5 -0
  68. data/test/lib/vedeu/dsl/line_test.rb +4 -0
  69. data/test/lib/vedeu/dsl/shared/colour_test.rb +7 -7
  70. data/test/lib/vedeu/dsl/shared/style_test.rb +5 -2
  71. data/test/lib/vedeu/dsl/stream_test.rb +4 -1
  72. data/test/lib/vedeu/events/event_test.rb +6 -0
  73. data/test/lib/vedeu/geometry/bounding_area_test.rb +30 -30
  74. data/test/lib/vedeu/geometry/position_test.rb +5 -0
  75. data/test/lib/vedeu/models/view/char_test.rb +1 -14
  76. data/test/lib/vedeu/output/index_position_test.rb +64 -0
  77. data/test/lib/vedeu/output/style_test.rb +4 -0
  78. data/test/lib/vedeu/output/translator_test.rb +4 -0
  79. data/test/lib/vedeu/output/virtual_terminal_test.rb +2 -0
  80. data/test/lib/vedeu/output/wordwrap_test.rb +5 -0
  81. data/test/lib/vedeu/repositories/all_test.rb +3 -3
  82. data/test/lib/vedeu/repositories/repository_test.rb +8 -0
  83. data/test/lib/vedeu/support/console_test.rb +14 -0
  84. data/test/lib/vedeu/support/esc_test.rb +6 -0
  85. data/test/lib/vedeu/support/terminal_test.rb +13 -0
  86. data/vedeu.gemspec +4 -4
  87. metadata +12 -24
  88. data/test/integration/distributed_test.rb +0 -16
  89. data/test/integration/dsl/compositions_test.rb +0 -19
  90. data/test/integration/dsl/interfaces_test.rb +0 -193
  91. data/test/integration/dsl/keymaps_test.rb +0 -30
  92. data/test/integration/dsl/lines_test.rb +0 -104
  93. data/test/integration/dsl/menus_test.rb +0 -59
  94. data/test/integration/dsl/streams_test.rb +0 -103
  95. data/test/integration/dsl/views_test.rb +0 -45
@@ -8,6 +8,10 @@ module Vedeu
8
8
  let(:instance) { described.new(colour) }
9
9
  let(:colour) { '#ff0000' }
10
10
 
11
+ describe 'alias methods' do
12
+ it { instance.must_respond_to(:value) }
13
+ end
14
+
11
15
  describe '#initialize' do
12
16
  it { instance.must_be_instance_of(Translator) }
13
17
  it { instance.instance_variable_get('@colour').must_equal(colour) }
@@ -109,6 +109,8 @@ module Vedeu
109
109
  subject { instance.reset }
110
110
 
111
111
  it { subject.must_be_instance_of(Array) }
112
+
113
+ it { instance.must_respond_to(:clear) }
112
114
  end
113
115
 
114
116
  describe '#write' do
@@ -44,6 +44,11 @@ module Vedeu
44
44
  ]
45
45
  }
46
46
 
47
+ describe 'alias methods' do
48
+ it { instance.must_respond_to(:prune_as_lines) }
49
+ it { instance.must_respond_to(:wrap_as_lines) }
50
+ end
51
+
47
52
  describe '#initialize' do
48
53
  it { instance.must_be_instance_of(described) }
49
54
  it { instance.instance_variable_get('@text').must_equal(text) }
@@ -60,9 +60,9 @@ module Vedeu
60
60
 
61
61
  end # Cursors
62
62
 
63
- describe Events do
63
+ describe EventsRepository do
64
64
 
65
- let(:described) { Vedeu::Events }
65
+ let(:described) { Vedeu::EventsRepository }
66
66
 
67
67
  describe '.events' do
68
68
  subject { described.events }
@@ -70,7 +70,7 @@ module Vedeu
70
70
  it { subject.must_be_instance_of(described) }
71
71
  end
72
72
 
73
- end # Events
73
+ end # EventsRepository
74
74
 
75
75
  describe Geometries do
76
76
 
@@ -25,6 +25,14 @@ module Vedeu
25
25
  let(:model_name) { 'terbium' }
26
26
  let(:storage) { {} }
27
27
 
28
+ describe 'alias methods' do
29
+ it { instance.must_respond_to(:by_name) }
30
+ it { instance.must_respond_to(:destroy) }
31
+ it { instance.must_respond_to(:delete) }
32
+ it { instance.must_respond_to(:deregister) }
33
+ it { instance.must_respond_to(:register) }
34
+ end
35
+
28
36
  describe '#initialize' do
29
37
  it { instance.must_be_instance_of(Vedeu::Repository) }
30
38
  it { instance.instance_variable_get('@model').must_equal(model) }
@@ -9,6 +9,20 @@ module Vedeu
9
9
  let(:height) { 24 }
10
10
  let(:width) { 32 }
11
11
 
12
+ describe 'alias methods' do
13
+ it { instance.must_respond_to(:tyn) }
14
+ it { instance.must_respond_to(:yn) }
15
+ it { instance.must_respond_to(:x) }
16
+ it { instance.must_respond_to(:y) }
17
+ it { instance.must_respond_to(:tx) }
18
+ it { instance.must_respond_to(:ty) }
19
+ it { instance.must_respond_to(:txn) }
20
+ it { instance.must_respond_to(:xn) }
21
+ it { instance.must_respond_to(:read) }
22
+ it { instance.must_respond_to(:write) }
23
+ it { instance.must_respond_to(:winsize) }
24
+ end
25
+
12
26
  describe '#initialize' do
13
27
  it { instance.must_be_instance_of(described) }
14
28
  it { instance.instance_variable_get('@height').must_equal(height) }
@@ -4,6 +4,12 @@ module Vedeu
4
4
 
5
5
  describe Esc do
6
6
 
7
+ let(:described) { Vedeu::Esc }
8
+
9
+ describe 'alias methods' do
10
+ it { described.must_respond_to(:foreground_codes) }
11
+ end
12
+
7
13
  describe 'colours defined via define_method' do
8
14
  it 'returns an escape sequence for the foreground colour' do
9
15
  Esc.magenta.must_equal("\e[35m")
@@ -13,6 +13,19 @@ module Vedeu
13
13
  IO.console.stubs(:print)
14
14
  end
15
15
 
16
+ describe 'alias methods' do
17
+ it { described.must_respond_to(:read) }
18
+ it { described.must_respond_to(:write) }
19
+ it { described.must_respond_to(:x) }
20
+ it { described.must_respond_to(:y) }
21
+ it { described.must_respond_to(:tx) }
22
+ it { described.must_respond_to(:ty) }
23
+ it { described.must_respond_to(:xn) }
24
+ it { described.must_respond_to(:txn) }
25
+ it { described.must_respond_to(:yn) }
26
+ it { described.must_respond_to(:tyn) }
27
+ end
28
+
16
29
  describe '.open' do
17
30
  context 'when a block was not given' do
18
31
  it { proc { Terminal.open }.must_raise(InvalidSyntax) }
data/vedeu.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'vedeu'
7
- spec.version = '0.4.2'
7
+ spec.version = '0.4.3'
8
8
  spec.authors = ['Gavin Laking']
9
9
  spec.email = ['gavinlaking@gmail.com']
10
10
  spec.summary = %q{A terminal case of wonderland.}
@@ -20,18 +20,18 @@ Gem::Specification.new do |spec|
20
20
  spec.add_development_dependency 'aruba', '0.6.2'
21
21
  spec.add_development_dependency 'bundler', '~> 1.7'
22
22
  spec.add_development_dependency 'cucumber', '1.3.19'
23
- spec.add_development_dependency 'guard', '2.12.3'
23
+ spec.add_development_dependency 'guard', '2.12.4'
24
24
  spec.add_development_dependency 'guard-bundler', '2.1.0'
25
25
  spec.add_development_dependency 'guard-cucumber', '1.5.3'
26
26
  spec.add_development_dependency 'guard-minitest', '2.4.4'
27
27
  spec.add_development_dependency 'inch', '0.5.10'
28
28
  spec.add_development_dependency 'minitest', '5.5.1'
29
- spec.add_development_dependency 'minitest-reporters', '1.0.10'
29
+ spec.add_development_dependency 'minitest-reporters', '1.0.11'
30
30
  spec.add_development_dependency 'mocha', '1.1.0'
31
31
  spec.add_development_dependency 'pry', '0.10.1'
32
32
  spec.add_development_dependency 'pry-byebug', '3.0.1'
33
33
  spec.add_development_dependency 'rake', '10.4.2'
34
- spec.add_development_dependency 'ruby-prof', '0.15.4'
34
+ spec.add_development_dependency 'ruby-prof', '0.15.6'
35
35
  spec.add_development_dependency 'simplecov', '0.9.2'
36
36
  spec.add_development_dependency 'yard', '0.8.7.6'
37
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vedeu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Laking
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-01 00:00:00.000000000 Z
11
+ date: 2015-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aruba
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 2.12.3
61
+ version: 2.12.4
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 2.12.3
68
+ version: 2.12.4
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: guard-bundler
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 1.0.10
145
+ version: 1.0.11
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: 1.0.10
152
+ version: 1.0.11
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: mocha
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -212,14 +212,14 @@ dependencies:
212
212
  requirements:
213
213
  - - '='
214
214
  - !ruby/object:Gem::Version
215
- version: 0.15.4
215
+ version: 0.15.6
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - '='
221
221
  - !ruby/object:Gem::Version
222
- version: 0.15.4
222
+ version: 0.15.6
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: simplecov
225
225
  requirement: !ruby/object:Gem::Requirement
@@ -340,6 +340,7 @@ files:
340
340
  - lib/vedeu/dsl/view.rb
341
341
  - lib/vedeu/events/all.rb
342
342
  - lib/vedeu/events/event.rb
343
+ - lib/vedeu/events/events.rb
343
344
  - lib/vedeu/events/trigger.rb
344
345
  - lib/vedeu/exceptions.rb
345
346
  - lib/vedeu/geometry/all.rb
@@ -383,6 +384,7 @@ files:
383
384
  - lib/vedeu/output/foreground.rb
384
385
  - lib/vedeu/output/html_char.rb
385
386
  - lib/vedeu/output/html_renderer.rb
387
+ - lib/vedeu/output/index_position.rb
386
388
  - lib/vedeu/output/output.rb
387
389
  - lib/vedeu/output/position_index.rb
388
390
  - lib/vedeu/output/presentation.rb
@@ -415,14 +417,6 @@ files:
415
417
  - lib/vedeu/support/write.rb
416
418
  - lib/vedeu/traps.rb
417
419
  - logs/.gitkeep
418
- - test/integration/distributed_test.rb
419
- - test/integration/dsl/compositions_test.rb
420
- - test/integration/dsl/interfaces_test.rb
421
- - test/integration/dsl/keymaps_test.rb
422
- - test/integration/dsl/lines_test.rb
423
- - test/integration/dsl/menus_test.rb
424
- - test/integration/dsl/streams_test.rb
425
- - test/integration/dsl/views_test.rb
426
420
  - test/lib/vedeu/api_test.rb
427
421
  - test/lib/vedeu/application_test.rb
428
422
  - test/lib/vedeu/bindings_test.rb
@@ -489,6 +483,7 @@ files:
489
483
  - test/lib/vedeu/output/foreground_test.rb
490
484
  - test/lib/vedeu/output/html_char_test.rb
491
485
  - test/lib/vedeu/output/html_renderer_test.rb
486
+ - test/lib/vedeu/output/index_position_test.rb
492
487
  - test/lib/vedeu/output/output_test.rb
493
488
  - test/lib/vedeu/output/position_index_test.rb
494
489
  - test/lib/vedeu/output/presentation_test.rb
@@ -555,14 +550,6 @@ summary: A terminal case of wonderland.
555
550
  test_files:
556
551
  - features/start_stop.feature
557
552
  - features/support/env.rb
558
- - test/integration/distributed_test.rb
559
- - test/integration/dsl/compositions_test.rb
560
- - test/integration/dsl/interfaces_test.rb
561
- - test/integration/dsl/keymaps_test.rb
562
- - test/integration/dsl/lines_test.rb
563
- - test/integration/dsl/menus_test.rb
564
- - test/integration/dsl/streams_test.rb
565
- - test/integration/dsl/views_test.rb
566
553
  - test/lib/vedeu/api_test.rb
567
554
  - test/lib/vedeu/application_test.rb
568
555
  - test/lib/vedeu/bindings_test.rb
@@ -629,6 +616,7 @@ test_files:
629
616
  - test/lib/vedeu/output/foreground_test.rb
630
617
  - test/lib/vedeu/output/html_char_test.rb
631
618
  - test/lib/vedeu/output/html_renderer_test.rb
619
+ - test/lib/vedeu/output/index_position_test.rb
632
620
  - test/lib/vedeu/output/output_test.rb
633
621
  - test/lib/vedeu/output/position_index_test.rb
634
622
  - test/lib/vedeu/output/presentation_test.rb
@@ -1,16 +0,0 @@
1
- require 'test_helper'
2
-
3
- describe 'Running a distributed app' do
4
-
5
- it 'runs a simple app and exits' do
6
- skip
7
- app = Vedeu::TestApplication.build
8
- server = Vedeu::Subprocess.execute!(app)
9
-
10
- client = Vedeu::Distributed::Client.connect("druby://localhost:21420")
11
- client.input('q')
12
- client.output.must_equal('')
13
- client.shutdown
14
- end
15
-
16
- end
@@ -1,19 +0,0 @@
1
- require 'test_helper'
2
-
3
- describe 'Compositions' do
4
-
5
- describe '#view' do
6
- subject {
7
- Vedeu.views do
8
- view 'compositions' do
9
- # ...
10
- end
11
- end
12
- }
13
-
14
- context 'when no block is given' do
15
- subject { Vedeu.view }
16
- end
17
- end
18
-
19
- end
@@ -1,193 +0,0 @@
1
- require 'test_helper'
2
-
3
- describe 'Interfaces' do
4
-
5
- describe '#background' do
6
- subject {
7
- Vedeu.interface 'interfaces' do
8
- background ''
9
- end
10
- }
11
-
12
- it { subject.must_be_instance_of(Vedeu::Interface) }
13
-
14
- context 'when no value is provided' do
15
-
16
- end
17
- end
18
-
19
- describe '#border' do
20
- subject {
21
- Vedeu.interface 'interfaces' do
22
- border do
23
- end
24
- end
25
- }
26
-
27
- it { subject.must_be_instance_of(Vedeu::Interface) }
28
-
29
- context 'when no value is provided' do
30
-
31
- end
32
- end
33
-
34
- describe '#colour' do
35
- subject {
36
- Vedeu.interface 'interfaces' do
37
- colour ''
38
- end
39
- }
40
-
41
- context 'when no value is provided' do
42
-
43
- end
44
- end
45
-
46
- describe '#foreground' do
47
- subject {
48
- Vedeu.interface 'interfaces' do
49
- foreground ''
50
- end
51
- }
52
-
53
- it { subject.must_be_instance_of(Vedeu::Interface) }
54
-
55
- context 'when no value is provided' do
56
-
57
- end
58
- end
59
-
60
- describe '#cursor' do
61
- subject {
62
- Vedeu.interface 'interfaces' do
63
- cursor ''
64
- end
65
- }
66
-
67
- context 'when no value is provided' do
68
-
69
- end
70
- end
71
-
72
- describe '#cursor!' do
73
- subject {
74
- Vedeu.interface 'interfaces' do
75
- cursor!
76
- end
77
- }
78
-
79
- context 'when no value is provided' do
80
-
81
- end
82
- end
83
-
84
- describe '#delay' do
85
- subject {
86
- Vedeu.interface 'interfaces' do
87
- delay ''
88
- end
89
- }
90
-
91
- it { subject.must_be_instance_of(Vedeu::Interface) }
92
-
93
- context 'when no value is provided' do
94
-
95
- end
96
- end
97
-
98
- describe '#focus!' do
99
- subject {
100
- Vedeu.interface 'interfaces' do
101
- focus!
102
- end
103
- }
104
-
105
- context 'when no value is provided' do
106
-
107
- end
108
- end
109
-
110
- describe '#geometry' do
111
- subject {
112
- Vedeu.interface 'interfaces' do
113
- geometry do
114
- end
115
- end
116
- }
117
-
118
- it { subject.must_be_instance_of(Vedeu::Interface) }
119
-
120
- context 'when no value is provided' do
121
-
122
- end
123
- end
124
-
125
- describe '#group' do
126
- subject {
127
- Vedeu.interface 'interfaces' do
128
- group 'compounds'
129
- end
130
- }
131
-
132
- it { subject.must_be_instance_of(Vedeu::Interface) }
133
-
134
- context 'when no value is provided' do
135
-
136
- end
137
- end
138
-
139
- describe '#keys' do
140
- subject {
141
- Vedeu.interface 'interfaces' do
142
- keys do
143
- end
144
- end
145
- }
146
-
147
- context 'when no value is provided' do
148
-
149
- end
150
- end
151
-
152
- describe '#lines' do
153
- subject {
154
- Vedeu.interface 'interfaces' do
155
- lines do
156
- end
157
- end
158
- }
159
-
160
- context 'when no value is provided' do
161
-
162
- end
163
- end
164
-
165
- describe '#name' do
166
- subject {
167
- Vedeu.interface do
168
- name 'interfaces'
169
- end
170
- }
171
-
172
- it { subject.must_be_instance_of(Vedeu::Interface) }
173
-
174
- context 'when no value is provided' do
175
-
176
- end
177
- end
178
-
179
- describe '#style' do
180
- subject {
181
- Vedeu.interface 'interfaces' do
182
- style ''
183
- end
184
- }
185
-
186
- it { subject.must_be_instance_of(Vedeu::Interface) }
187
-
188
- context 'when no value is provided' do
189
-
190
- end
191
- end
192
-
193
- end