vedeu 0.4.2 → 0.4.3

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