vedeu 0.7.4 → 0.8.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 (277) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/docs/api.md +5 -1
  4. data/docs/borders.md +2 -26
  5. data/docs/dsl.md +4 -4
  6. data/docs/dsl_elements.md +100 -0
  7. data/docs/events/by_name/action.md +3 -0
  8. data/docs/events/by_name/cursor_hide.md +3 -0
  9. data/docs/events/by_name/cursor_reset.md +3 -0
  10. data/docs/events/by_name/cursor_show.md +3 -0
  11. data/docs/events/by_name/geometry_down.md +3 -0
  12. data/docs/events/by_name/geometry_left.md +3 -0
  13. data/docs/events/by_name/geometry_right.md +3 -0
  14. data/docs/events/by_name/geometry_up.md +3 -0
  15. data/docs/events/by_name/hide_view.md +3 -0
  16. data/docs/events/by_name/set_border_caption.md +13 -0
  17. data/docs/events/by_name/set_border_title.md +13 -0
  18. data/docs/events/by_name/show_view.md +3 -0
  19. data/docs/events/by_name/standalone.md +3 -0
  20. data/docs/events/by_name/toggle_view.md +3 -0
  21. data/docs/events/by_name/view_down.md +4 -0
  22. data/docs/events/by_name/view_left.md +4 -0
  23. data/docs/events/by_name/view_right.md +4 -0
  24. data/docs/events/by_name/view_up.md +4 -0
  25. data/examples/views/empty_template.rb +46 -0
  26. data/examples/views/expected/line.out +1 -0
  27. data/examples/views/expected/lines.out +1 -0
  28. data/examples/views/expected/lines_alignment.out +1 -0
  29. data/examples/views/line.rb +220 -0
  30. data/examples/views/lines.rb +281 -0
  31. data/examples/views/lines_alignment.rb +231 -0
  32. data/examples/views/lines_line_stream.rb +99 -0
  33. data/examples/views/lines_line_streams.rb +73 -0
  34. data/examples/views/lines_line_streams_stream.rb +83 -0
  35. data/examples/views/lines_line_streams_stream_stream.rb +53 -0
  36. data/examples/views/lines_streams.rb +50 -0
  37. data/examples/views/lines_streams_stream.rb +51 -0
  38. data/examples/views/runner.sh +27 -0
  39. data/lib/vedeu/all.rb +6 -2
  40. data/lib/vedeu/application/controller.rb +1 -1
  41. data/lib/vedeu/boolean.rb +35 -0
  42. data/lib/vedeu/borders/border.rb +3 -3
  43. data/lib/vedeu/borders/caption.rb +1 -1
  44. data/lib/vedeu/borders/dsl.rb +1 -20
  45. data/lib/vedeu/borders/title.rb +6 -8
  46. data/lib/vedeu/buffers/buffer.rb +2 -2
  47. data/lib/vedeu/buffers/refresh.rb +1 -1
  48. data/lib/vedeu/cells/border.rb +0 -11
  49. data/lib/vedeu/cells/empty.rb +4 -4
  50. data/lib/vedeu/{geometries/alignment → coercers}/alignment.rb +50 -53
  51. data/lib/vedeu/coercers/all.rb +16 -0
  52. data/lib/vedeu/coercers/colour.rb +78 -0
  53. data/lib/vedeu/coercers/colour_attributes.rb +122 -0
  54. data/lib/vedeu/coercers/horizontal_alignment.rb +28 -0
  55. data/lib/vedeu/coercers/vertical_alignment.rb +27 -0
  56. data/lib/vedeu/colours/all.rb +1 -0
  57. data/lib/vedeu/colours/background.rb +13 -2
  58. data/lib/vedeu/colours/colour.rb +16 -31
  59. data/lib/vedeu/colours/foreground.rb +13 -2
  60. data/lib/vedeu/colours/translator.rb +21 -59
  61. data/lib/vedeu/colours/validator.rb +84 -0
  62. data/lib/vedeu/common.rb +52 -0
  63. data/lib/vedeu/configuration/api.rb +4 -10
  64. data/lib/vedeu/configuration/configuration.rb +4 -4
  65. data/lib/vedeu/cursors/coordinate.rb +1 -1
  66. data/lib/vedeu/cursors/cursor.rb +1 -1
  67. data/lib/vedeu/cursors/dsl.rb +1 -28
  68. data/lib/vedeu/dsl/all.rb +7 -7
  69. data/lib/vedeu/dsl/attributes.rb +224 -0
  70. data/lib/vedeu/dsl/border.rb +127 -0
  71. data/lib/vedeu/dsl/cursors.rb +44 -0
  72. data/lib/vedeu/dsl/dsl.rb +9 -0
  73. data/lib/vedeu/dsl/elements.rb +335 -0
  74. data/lib/vedeu/dsl/geometry.rb +113 -0
  75. data/lib/vedeu/dsl/string/align.rb +127 -0
  76. data/lib/vedeu/dsl/string/all.rb +14 -0
  77. data/lib/vedeu/dsl/string/text.rb +107 -0
  78. data/lib/vedeu/dsl/string/truncate.rb +111 -0
  79. data/lib/vedeu/{output → dsl/string}/wordwrap.rb +10 -6
  80. data/lib/vedeu/dsl/view.rb +124 -248
  81. data/lib/vedeu/dsl/views.rb +244 -0
  82. data/lib/vedeu/editor/cursor.rb +1 -1
  83. data/lib/vedeu/editor/delete.rb +3 -1
  84. data/lib/vedeu/editor/insert.rb +22 -6
  85. data/lib/vedeu/editor/line.rb +15 -9
  86. data/lib/vedeu/editor/lines.rb +27 -18
  87. data/lib/vedeu/esc/actions.rb +73 -26
  88. data/lib/vedeu/esc/all.rb +2 -0
  89. data/lib/vedeu/esc/background.rb +219 -0
  90. data/lib/vedeu/esc/borders.rb +72 -26
  91. data/lib/vedeu/esc/colours.rb +26 -27
  92. data/lib/vedeu/esc/esc.rb +4 -4
  93. data/lib/vedeu/esc/foreground.rb +219 -0
  94. data/lib/vedeu/esc/mouse.rb +16 -13
  95. data/lib/vedeu/events/aliases.rb +2 -2
  96. data/lib/vedeu/events/event.rb +1 -1
  97. data/lib/vedeu/geometries/all.rb +0 -1
  98. data/lib/vedeu/geometries/area/dimension.rb +2 -2
  99. data/lib/vedeu/geometries/dsl/dsl.rb +3 -51
  100. data/lib/vedeu/geometries/dsl/validator.rb +4 -4
  101. data/lib/vedeu/geometries/geometry.rb +10 -10
  102. data/lib/vedeu/geometries/move.rb +4 -4
  103. data/lib/vedeu/groups/dsl.rb +1 -0
  104. data/lib/vedeu/groups/group.rb +1 -1
  105. data/lib/vedeu/input/all.rb +1 -0
  106. data/lib/vedeu/input/capture.rb +14 -10
  107. data/lib/vedeu/input/dsl.rb +20 -26
  108. data/lib/vedeu/input/key.rb +0 -6
  109. data/lib/vedeu/input/keymap.rb +4 -9
  110. data/lib/vedeu/input/keys.rb +13 -0
  111. data/lib/vedeu/input/mapper.rb +29 -14
  112. data/lib/vedeu/input/read.rb +4 -2
  113. data/lib/vedeu/interfaces/dsl.rb +23 -22
  114. data/lib/vedeu/interfaces/interface.rb +2 -2
  115. data/lib/vedeu/logging/debug.rb +33 -0
  116. data/lib/vedeu/logging/log.rb +42 -33
  117. data/lib/vedeu/menus/dsl.rb +7 -18
  118. data/lib/vedeu/menus/menu.rb +1 -1
  119. data/lib/vedeu/models/focus.rb +1 -1
  120. data/lib/vedeu/models/toggleable.rb +4 -4
  121. data/lib/vedeu/null/generic.rb +2 -2
  122. data/lib/vedeu/output/all.rb +0 -2
  123. data/lib/vedeu/output/compressor_cache.rb +1 -1
  124. data/lib/vedeu/output/output.rb +5 -20
  125. data/lib/vedeu/presentation/colour.rb +39 -7
  126. data/lib/vedeu/presentation/style.rb +25 -11
  127. data/lib/vedeu/renderers/html.rb +11 -11
  128. data/lib/vedeu/repositories/assemblage.rb +9 -0
  129. data/lib/vedeu/repositories/collection.rb +1 -0
  130. data/lib/vedeu/repositories/defaults.rb +4 -1
  131. data/lib/vedeu/repositories/model.rb +7 -37
  132. data/lib/vedeu/repositories/parent.rb +6 -6
  133. data/lib/vedeu/repositories/registerable.rb +16 -2
  134. data/lib/vedeu/repositories/repositories.rb +1 -1
  135. data/lib/vedeu/repositories/repository.rb +2 -12
  136. data/lib/vedeu/runtime/flags.rb +1 -1
  137. data/lib/vedeu/terminal/terminal.rb +7 -2
  138. data/lib/vedeu/version.rb +1 -1
  139. data/lib/vedeu/views/all.rb +4 -1
  140. data/lib/vedeu/views/char.rb +5 -4
  141. data/lib/vedeu/views/chars.rb +42 -0
  142. data/lib/vedeu/views/composition.rb +15 -30
  143. data/lib/vedeu/views/default_attributes.rb +74 -0
  144. data/lib/vedeu/views/html_char.rb +2 -2
  145. data/lib/vedeu/views/line.rb +27 -53
  146. data/lib/vedeu/views/lines.rb +31 -0
  147. data/lib/vedeu/views/stream.rb +31 -78
  148. data/lib/vedeu/views/streams.rb +42 -0
  149. data/lib/vedeu/views/value.rb +150 -0
  150. data/lib/vedeu/views/view.rb +32 -36
  151. data/lib/vedeu/views/{view_collection.rb → views.rb} +2 -2
  152. data/test/lib/vedeu/application/application_controller_test.rb +5 -0
  153. data/test/lib/vedeu/application/controller_test.rb +22 -28
  154. data/test/lib/vedeu/boolean_test.rb +57 -0
  155. data/test/lib/vedeu/borders/border_test.rb +130 -36
  156. data/test/lib/vedeu/borders/dsl_test.rb +63 -10
  157. data/test/lib/vedeu/borders/title_test.rb +16 -5
  158. data/test/lib/vedeu/buffers/buffer_test.rb +26 -10
  159. data/test/lib/vedeu/buffers/empty_test.rb +1 -1
  160. data/test/lib/vedeu/cells/border_test.rb +0 -6
  161. data/test/lib/vedeu/cells/clear_test.rb +2 -0
  162. data/test/lib/vedeu/cells/empty_test.rb +12 -2
  163. data/test/lib/vedeu/cells/escape_test.rb +7 -2
  164. data/test/lib/vedeu/{geometries/alignment → coercers}/alignment_test.rb +44 -19
  165. data/test/lib/vedeu/coercers/colour_attributes_test.rb +168 -0
  166. data/test/lib/vedeu/coercers/colour_test.rb +75 -0
  167. data/test/lib/vedeu/{geometries/alignment → coercers}/horizontal_alignment_test.rb +6 -6
  168. data/test/lib/vedeu/{geometries/alignment → coercers}/vertical_alignment_test.rb +6 -6
  169. data/test/lib/vedeu/colours/background_test.rb +17 -1
  170. data/test/lib/vedeu/colours/colour_test.rb +74 -2
  171. data/test/lib/vedeu/colours/foreground_test.rb +17 -1
  172. data/test/lib/vedeu/colours/repository_test.rb +1 -1
  173. data/test/lib/vedeu/colours/translator_test.rb +8 -1
  174. data/test/lib/vedeu/colours/validator_test.rb +60 -0
  175. data/test/lib/vedeu/common_test.rb +138 -0
  176. data/test/lib/vedeu/configuration/api_test.rb +96 -51
  177. data/test/lib/vedeu/cursors/coordinate_test.rb +58 -117
  178. data/test/lib/vedeu/cursors/cursor_test.rb +46 -17
  179. data/test/lib/vedeu/cursors/dsl_test.rb +19 -5
  180. data/test/lib/vedeu/distributed/client_test.rb +8 -3
  181. data/test/lib/vedeu/distributed/server_test.rb +8 -0
  182. data/test/lib/vedeu/distributed/test_application_test.rb +62 -19
  183. data/test/lib/vedeu/distributed/uri_test.rb +4 -2
  184. data/test/lib/vedeu/dsl/attributes_test.rb +212 -0
  185. data/test/lib/vedeu/dsl/border_test.rb +51 -0
  186. data/test/lib/vedeu/dsl/{lines_test.rb → cursors_test.rb} +2 -2
  187. data/test/lib/vedeu/dsl/dsl_test.rb +44 -0
  188. data/test/lib/vedeu/dsl/elements_test.rb +118 -0
  189. data/test/lib/vedeu/dsl/geometry_test.rb +35 -0
  190. data/test/lib/vedeu/dsl/presentation_test.rb +52 -11
  191. data/test/lib/vedeu/dsl/string/align_test.rb +147 -0
  192. data/test/lib/vedeu/dsl/string/text_test.rb +213 -0
  193. data/test/lib/vedeu/dsl/string/truncate_test.rb +97 -0
  194. data/test/lib/vedeu/{output → dsl/string}/wordwrap_test.rb +3 -3
  195. data/test/lib/vedeu/dsl/view_test.rb +30 -42
  196. data/test/lib/vedeu/dsl/views_test.rb +61 -0
  197. data/test/lib/vedeu/editor/cursor_test.rb +30 -12
  198. data/test/lib/vedeu/editor/document_test.rb +18 -10
  199. data/test/lib/vedeu/editor/line_test.rb +4 -1
  200. data/test/lib/vedeu/editor/lines_test.rb +11 -3
  201. data/test/lib/vedeu/esc/actions_test.rb +42 -4
  202. data/test/lib/vedeu/esc/background_test.rb +185 -0
  203. data/test/lib/vedeu/esc/borders_test.rb +37 -9
  204. data/test/lib/vedeu/esc/colours_test.rb +0 -59
  205. data/test/lib/vedeu/esc/foreground_test.rb +185 -0
  206. data/test/lib/vedeu/esc/mouse_test.rb +9 -4
  207. data/test/lib/vedeu/geometries/area/area_test.rb +34 -11
  208. data/test/lib/vedeu/geometries/dsl/dsl_test.rb +52 -61
  209. data/test/lib/vedeu/geometries/geometry_test.rb +62 -18
  210. data/test/lib/vedeu/geometries/position_test.rb +14 -7
  211. data/test/lib/vedeu/groups/dsl_test.rb +24 -15
  212. data/test/lib/vedeu/groups/group_test.rb +18 -8
  213. data/test/lib/vedeu/input/dsl_test.rb +33 -16
  214. data/test/lib/vedeu/input/key_test.rb +8 -1
  215. data/test/lib/vedeu/input/keymap_test.rb +4 -1
  216. data/test/lib/vedeu/input/keys_test.rb +16 -0
  217. data/test/lib/vedeu/interfaces/dsl_test.rb +24 -30
  218. data/test/lib/vedeu/interfaces/interface_test.rb +79 -24
  219. data/test/lib/vedeu/logging/ips_test.rb +10 -1
  220. data/test/lib/vedeu/menus/dsl_test.rb +24 -23
  221. data/test/lib/vedeu/menus/menu_test.rb +18 -8
  222. data/test/lib/vedeu/models/page_test.rb +5 -1
  223. data/test/lib/vedeu/models/row_test.rb +4 -0
  224. data/test/lib/vedeu/models/toggleable_test.rb +10 -6
  225. data/test/lib/vedeu/null/generic_test.rb +90 -1
  226. data/test/lib/vedeu/output/viewport_test.rb +11 -10
  227. data/test/lib/vedeu/plugins/plugin_test.rb +22 -9
  228. data/test/lib/vedeu/presentation/colour_test.rb +2 -1
  229. data/test/lib/vedeu/presentation/presentation_test.rb +13 -8
  230. data/test/lib/vedeu/presentation/style_test.rb +28 -13
  231. data/test/lib/vedeu/renderers/file_test.rb +4 -2
  232. data/test/lib/vedeu/renderers/options_test.rb +1 -1
  233. data/test/lib/vedeu/repositories/assemblage_test.rb +18 -0
  234. data/test/lib/vedeu/repositories/collection_test.rb +34 -10
  235. data/test/lib/vedeu/repositories/defaults_test.rb +6 -0
  236. data/test/lib/vedeu/repositories/model_test.rb +4 -13
  237. data/test/lib/vedeu/repositories/repository_test.rb +12 -5
  238. data/test/lib/vedeu/repositories/store_test.rb +9 -0
  239. data/test/lib/vedeu/runtime/flags_test.rb +6 -4
  240. data/test/lib/vedeu/runtime/launcher_test.rb +1 -1
  241. data/test/lib/vedeu/templating/helpers_test.rb +93 -65
  242. data/test/lib/vedeu/templating/view_template_test.rb +26 -26
  243. data/test/lib/vedeu/views/char_test.rb +36 -11
  244. data/test/lib/vedeu/views/chars_test.rb +71 -0
  245. data/test/lib/vedeu/views/composition_test.rb +17 -16
  246. data/test/lib/vedeu/views/default_attributes_test.rb +97 -0
  247. data/test/lib/vedeu/views/line_test.rb +20 -75
  248. data/test/lib/vedeu/views/lines_test.rb +47 -0
  249. data/test/lib/vedeu/views/stream_test.rb +38 -63
  250. data/test/lib/vedeu/views/streams_test.rb +9 -0
  251. data/test/lib/vedeu/views/value_test.rb +112 -0
  252. data/test/lib/vedeu/views/view_test.rb +67 -45
  253. data/test/lib/vedeu/views/views_test.rb +22 -0
  254. data/test/support/examples/material_colours_app.rb +2 -2
  255. data/test/support/helpers/model_test_class.rb +1 -0
  256. data/test/test_helper.rb +3 -1
  257. data/vedeu.gemspec +2 -2
  258. metadata +124 -58
  259. data/lib/vedeu/dsl/composition.rb +0 -150
  260. data/lib/vedeu/dsl/line.rb +0 -119
  261. data/lib/vedeu/dsl/lines.rb +0 -23
  262. data/lib/vedeu/dsl/shared.rb +0 -85
  263. data/lib/vedeu/dsl/stream.rb +0 -40
  264. data/lib/vedeu/dsl/streams.rb +0 -23
  265. data/lib/vedeu/dsl/text.rb +0 -98
  266. data/lib/vedeu/geometries/alignment/all.rb +0 -11
  267. data/lib/vedeu/geometries/alignment/horizontal_alignment.rb +0 -27
  268. data/lib/vedeu/geometries/alignment/vertical_alignment.rb +0 -27
  269. data/lib/vedeu/output/text.rb +0 -275
  270. data/test/lib/vedeu/dsl/composition_test.rb +0 -67
  271. data/test/lib/vedeu/dsl/line_test.rb +0 -85
  272. data/test/lib/vedeu/dsl/shared_test.rb +0 -66
  273. data/test/lib/vedeu/dsl/stream_test.rb +0 -30
  274. data/test/lib/vedeu/dsl/streams_test.rb +0 -13
  275. data/test/lib/vedeu/dsl/text_test.rb +0 -122
  276. data/test/lib/vedeu/output/text_test.rb +0 -156
  277. data/test/lib/vedeu/views/view_collection_test.rb +0 -13
@@ -60,24 +60,64 @@ module Vedeu
60
60
  end
61
61
  end
62
62
 
63
- describe 'accessors' do
64
- it do
65
- instance.must_respond_to(:name)
66
- instance.must_respond_to(:name=)
67
- instance.must_respond_to(:height=)
68
- instance.must_respond_to(:horizontal_alignment)
69
- instance.must_respond_to(:horizontal_alignment=)
70
- instance.must_respond_to(:maximised)
71
- instance.must_respond_to(:maximised?)
72
- instance.must_respond_to(:maximised=)
73
- instance.must_respond_to(:vertical_alignment)
74
- instance.must_respond_to(:vertical_alignment=)
75
- instance.must_respond_to(:width=)
76
- instance.must_respond_to(:x=)
77
- instance.must_respond_to(:xn=)
78
- instance.must_respond_to(:y=)
79
- instance.must_respond_to(:yn=)
80
- end
63
+ describe '#name' do
64
+ it { instance.must_respond_to(:name) }
65
+ end
66
+
67
+ describe '#name=' do
68
+ it { instance.must_respond_to(:name=) }
69
+ end
70
+
71
+ describe '#height=' do
72
+ it { instance.must_respond_to(:height=) }
73
+ end
74
+
75
+ describe '#horizontal_alignment' do
76
+ it { instance.must_respond_to(:horizontal_alignment) }
77
+ end
78
+
79
+ describe '#horizontal_alignment=' do
80
+ it { instance.must_respond_to(:horizontal_alignment=) }
81
+ end
82
+
83
+ describe '#maximised' do
84
+ it { instance.must_respond_to(:maximised) }
85
+ end
86
+
87
+ describe '#maximised?' do
88
+ it { instance.must_respond_to(:maximised?) }
89
+ end
90
+
91
+ describe '#maximised=' do
92
+ it { instance.must_respond_to(:maximised=) }
93
+ end
94
+
95
+ describe '#vertical_alignment' do
96
+ it { instance.must_respond_to(:vertical_alignment) }
97
+ end
98
+
99
+ describe '#vertical_alignment=' do
100
+ it { instance.must_respond_to(:vertical_alignment=) }
101
+ end
102
+
103
+ describe '#width=' do
104
+ it { instance.must_respond_to(:width=) }
105
+ end
106
+
107
+ describe '#x=' do
108
+ it { instance.must_respond_to(:x=) }
109
+ end
110
+
111
+ describe '#xn=' do
112
+ it { instance.must_respond_to(:xn=) }
113
+ end
114
+
115
+ describe '#y=' do
116
+ it { instance.must_respond_to(:y=) }
117
+ end
118
+
119
+ describe '#yn=' do
120
+ it { instance.must_respond_to(:yn=) }
81
121
  end
82
122
 
83
123
  describe '#attributes' do
@@ -111,6 +151,10 @@ module Vedeu
111
151
  end
112
152
  end
113
153
 
154
+ describe '#==' do
155
+ it { instance.must_respond_to(:==) }
156
+ end
157
+
114
158
  describe '#maximise' do
115
159
  let(:attributes) {
116
160
  {
@@ -11,13 +11,20 @@ module Vedeu
11
11
  let(:y) { 12 }
12
12
  let(:x) { 19 }
13
13
 
14
- describe 'accessors' do
15
- it do
16
- instance.must_respond_to(:y)
17
- instance.must_respond_to(:first)
18
- instance.must_respond_to(:x)
19
- instance.must_respond_to(:last)
20
- end
14
+ describe '#y' do
15
+ it { instance.must_respond_to(:y) }
16
+ end
17
+
18
+ describe '#first' do
19
+ it { instance.must_respond_to(:first) }
20
+ end
21
+
22
+ describe '#x' do
23
+ it { instance.must_respond_to(:x) }
24
+ end
25
+
26
+ describe '#last' do
27
+ it { instance.must_respond_to(:last) }
21
28
  end
22
29
 
23
30
  describe '#initialize' do
@@ -10,28 +10,37 @@ module Vedeu
10
10
  let(:instance) { described.new(model, client) }
11
11
  let(:model) { Vedeu::Groups::Group.new }
12
12
  let(:client) {}
13
- let(:group_name) { 'main_screen' }
13
+ let(:_name) { :main_screen }
14
14
 
15
15
  describe '.group' do
16
- context 'when the block is given' do
17
- subject {
18
- described.group(group_name) do
19
- # ...
20
- end
21
- }
16
+ subject {
17
+ described.group(_name) do
18
+ # ...
19
+ end
20
+ }
22
21
 
22
+ context 'when the name is not given' do
23
+ let(:_name) {}
24
+
25
+ it { proc { subject }.must_raise(Vedeu::Error::MissingRequired) }
23
26
  end
24
27
 
25
- context 'when the block is not given' do
26
- subject { described.group(group_name) }
28
+ context 'when the name is given' do
29
+ context 'when the block is not given' do
30
+ subject { described.group(_name) }
31
+
32
+ it { proc { subject }.must_raise(Vedeu::Error::RequiresBlock) }
33
+ end
27
34
 
28
- it { proc { subject }.must_raise(Vedeu::Error::RequiresBlock) }
35
+ context 'when the block is given' do
36
+ it { subject.must_be_instance_of(Vedeu::Groups::Group) }
37
+ end
29
38
  end
30
39
  end
31
40
 
32
41
  describe '#add' do
33
42
  subject {
34
- described.group(group_name) do
43
+ described.group(_name) do
35
44
  add('editor_interface')
36
45
  end
37
46
  }
@@ -47,7 +56,7 @@ module Vedeu
47
56
  }
48
57
 
49
58
  subject {
50
- described.group(group_name) do
59
+ described.group(_name) do
51
60
  members('editor_interface', 'some_interface', 'other_interface')
52
61
  end
53
62
  }
@@ -98,9 +107,9 @@ module Vedeu
98
107
 
99
108
  it { subject.members.size.must_equal(2) }
100
109
 
101
- it { subject.members.must_equal(
102
- Set['main_interface', 'status_interface']
103
- ) }
110
+ it do
111
+ subject.members.must_equal(Set['main_interface', 'status_interface'])
112
+ end
104
113
  end
105
114
 
106
115
  end # DSL
@@ -37,14 +37,24 @@ module Vedeu
37
37
  it { instance.instance_variable_get('@visible').must_equal(visible) }
38
38
  end
39
39
 
40
- describe 'accessors' do
41
- it do
42
- instance.must_respond_to(:name)
43
- instance.must_respond_to(:name=)
44
- instance.must_respond_to(:visible)
45
- instance.must_respond_to(:visible=)
46
- instance.must_respond_to(:visible?)
47
- end
40
+ describe '#name' do
41
+ it { instance.must_respond_to(:name) }
42
+ end
43
+
44
+ describe '#name=' do
45
+ it { instance.must_respond_to(:name=) }
46
+ end
47
+
48
+ describe '#visible' do
49
+ it { instance.must_respond_to(:visible) }
50
+ end
51
+
52
+ describe '#visible=' do
53
+ it { instance.must_respond_to(:visible=) }
54
+ end
55
+
56
+ describe '#visible?' do
57
+ it { instance.must_respond_to(:visible?) }
48
58
  end
49
59
 
50
60
  describe '#add' do
@@ -8,15 +8,44 @@ module Vedeu
8
8
 
9
9
  let(:described) { Vedeu::Input::DSL }
10
10
  let(:instance) { described.new(model) }
11
- let(:model) { Vedeu::Input::Keymap.new(name: '_test_') }
11
+ let(:model) { Vedeu::Input::Keymap.new(name: _name) }
12
+ let(:_name) { :vedeu_input_dsl }
13
+
14
+ describe '.keymap' do
15
+ subject {
16
+ described.keymap(_name) do
17
+ # ...
18
+ end
19
+ }
20
+
21
+ context 'when a name is not given' do
22
+ let(:_name) {}
23
+
24
+ it { proc { subject }.must_raise(Vedeu::Error::MissingRequired) }
25
+ end
26
+
27
+ context 'when a name is given' do
28
+ context 'when a block is not given' do
29
+ subject { described.keymap(_name) }
30
+
31
+ it { proc { subject }.must_raise(Vedeu::Error::RequiresBlock) }
32
+ end
33
+
34
+ context 'when a block is given' do
35
+ it { subject.must_be_instance_of(Vedeu::Input::Keymap) }
36
+ end
37
+ end
38
+ end
39
+
40
+ describe '#key=' do
41
+ it { instance.must_respond_to(:key=) }
42
+ end
12
43
 
13
44
  describe '#key' do
14
45
  let(:value_or_values) { ['j', :down] }
15
46
 
16
47
  subject { instance.key(*value_or_values) { :some_action } }
17
48
 
18
- it { instance.must_respond_to(:key=) }
19
-
20
49
  context 'when a block was not given' do
21
50
  subject { instance.key(value_or_values) }
22
51
 
@@ -48,19 +77,7 @@ module Vedeu
48
77
  end
49
78
 
50
79
  context 'when the key is not valid (already defined)' do
51
- end
52
- end
53
-
54
- describe '#name' do
55
- let(:_value) { 'gold' }
56
-
57
- subject { instance.name(_value) }
58
-
59
- it { instance.must_respond_to(:name=) }
60
-
61
- it 'defines the name of the keymap' do
62
- subject
63
- model.name.must_equal(_value)
80
+ # @todo Add more tests.
64
81
  end
65
82
  end
66
83
 
@@ -40,7 +40,9 @@ module Vedeu
40
40
  it 'returns the key defined' do
41
41
  subject.must_equal('a')
42
42
  end
43
+ end
43
44
 
45
+ describe '#key' do
44
46
  it { instance.must_respond_to(:key) }
45
47
  end
46
48
 
@@ -50,11 +52,16 @@ module Vedeu
50
52
  it 'returns the result of calling the proc' do
51
53
  subject.must_equal(:output)
52
54
  end
55
+ end
53
56
 
54
- it { instance.must_respond_to(:action) }
57
+ describe '#press' do
55
58
  it { instance.must_respond_to(:press) }
56
59
  end
57
60
 
61
+ describe '#action' do
62
+ it { instance.must_respond_to(:action) }
63
+ end
64
+
58
65
  end # Key
59
66
 
60
67
  end # Input
@@ -27,8 +27,11 @@ module Vedeu
27
27
  end
28
28
  end
29
29
 
30
- describe 'accessors' do
30
+ describe '#name' do
31
31
  it { instance.must_respond_to(:name) }
32
+ end
33
+
34
+ describe '#name=' do
32
35
  it { instance.must_respond_to(:name=) }
33
36
  end
34
37
 
@@ -0,0 +1,16 @@
1
+ require 'test_helper'
2
+
3
+ module Vedeu
4
+
5
+ module Input
6
+
7
+ describe Keys do
8
+
9
+ let(:described) { Vedeu::Input::Keys }
10
+ let(:instance) { described.new }
11
+
12
+ end # Keys
13
+
14
+ end # Input
15
+
16
+ end # Vedeu
@@ -15,30 +15,28 @@ module Vedeu
15
15
  let(:client) {}
16
16
 
17
17
  describe '.interface' do
18
- after { Vedeu.interfaces.reset }
19
-
20
18
  subject {
21
- described.interface('fluorine') do
19
+ described.interface(_name) do
22
20
  # ...
23
21
  end
24
22
  }
25
23
 
26
- it { subject.must_be_instance_of(Vedeu::Interfaces::Interface) }
27
-
28
- context 'when the block is not given' do
29
- subject { described.interface('fluorine') }
24
+ context 'when the name is not given' do
25
+ let(:_name) {}
30
26
 
31
- it { proc { subject }.must_raise(Vedeu::Error::RequiresBlock) }
27
+ it { proc { subject }.must_raise(Vedeu::Error::MissingRequired) }
32
28
  end
33
29
 
34
- context 'when the name is not given' do
35
- subject {
36
- described.interface('') do
37
- # ...
38
- end
39
- }
30
+ context 'when the name is given' do
31
+ context 'when the block is not given' do
32
+ subject { described.interface('fluorine') }
40
33
 
41
- it { proc { subject }.must_raise(Vedeu::Error::MissingRequired) }
34
+ it { proc { subject }.must_raise(Vedeu::Error::RequiresBlock) }
35
+ end
36
+
37
+ context 'when the block is given' do
38
+ it { subject.must_be_instance_of(Vedeu::Interfaces::Interface) }
39
+ end
42
40
  end
43
41
  end
44
42
 
@@ -133,41 +131,35 @@ module Vedeu
133
131
  end
134
132
 
135
133
  describe '#keymap' do
136
- subject do
134
+ subject {
137
135
  instance.keys do
138
136
  # ...
139
137
  end
140
- end
138
+ }
141
139
 
142
140
  it { subject.must_be_instance_of(Vedeu::Input::Keymap) }
143
- it { instance.must_respond_to(:keys) }
144
141
  end
145
142
 
146
- describe '#name' do
147
- subject { instance.name('nickel') }
148
-
149
- it do
150
- subject
151
- model.name.must_equal('nickel')
152
- end
143
+ describe '#keys' do
144
+ it { instance.must_respond_to(:keys) }
153
145
  end
154
146
 
155
147
  describe '#show!' do
156
- subject do
148
+ subject {
157
149
  Vedeu.interface 'xenon' do
158
150
  show!
159
151
  end
160
- end
152
+ }
161
153
 
162
154
  it { subject.visible.must_equal(true) }
163
155
  end
164
156
 
165
157
  describe '#hide!' do
166
- subject do
158
+ subject {
167
159
  Vedeu.interface 'xenon' do
168
160
  hide!
169
161
  end
170
- end
162
+ }
171
163
 
172
164
  it { subject.visible.must_equal(false) }
173
165
  end
@@ -204,7 +196,9 @@ module Vedeu
204
196
  subject { instance.zindex(_value) }
205
197
 
206
198
  it { subject.must_equal(1) }
207
- it { instance.must_respond_to(:z_index) }
199
+ end
200
+
201
+ describe '#z' do
208
202
  it { instance.must_respond_to(:z) }
209
203
  end
210
204