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
@@ -8,38 +8,6 @@ module Vedeu
8
8
 
9
9
  let(:described) { Vedeu::EscapeSequences::Colours }
10
10
 
11
- describe 'foreground colour methods' do
12
- it { described.black.must_equal("\e[30m") }
13
- it { described.red.must_equal("\e[31m") }
14
- it { described.green.must_equal("\e[32m") }
15
- it { described.yellow.must_equal("\e[33m") }
16
- it { described.blue.must_equal("\e[34m") }
17
- it { described.magenta.must_equal("\e[35m") }
18
- it { described.cyan.must_equal("\e[36m") }
19
- it { described.light_grey.must_equal("\e[37m") }
20
- it { described.default.must_equal("\e[39m") }
21
- it { described.dark_grey.must_equal("\e[90m") }
22
- it { described.light_red.must_equal("\e[91m") }
23
- it { described.light_green.must_equal("\e[92m") }
24
- it { described.light_yellow.must_equal("\e[93m") }
25
- it { described.light_blue.must_equal("\e[94m") }
26
- it { described.light_magenta.must_equal("\e[95m") }
27
- it { described.light_cyan.must_equal("\e[96m") }
28
- it { described.white.must_equal("\e[97m") }
29
-
30
- it 'returns an escape sequence for the foreground colour and resets ' \
31
- 'after calling the block' do
32
- described.cyan do
33
- 'ununpentium'
34
- end.must_equal("\e[36mununpentium\e[39m")
35
- end
36
- end
37
-
38
- describe '.codes' do
39
- it { described.codes.must_be_instance_of(Hash) }
40
- it { described.must_respond_to(:foreground_codes) }
41
- end
42
-
43
11
  describe '.background_codes' do
44
12
  let(:expected) {
45
13
  {
@@ -94,33 +62,6 @@ module Vedeu
94
62
  it { described.foreground_codes.must_equal(expected) }
95
63
  end
96
64
 
97
- describe 'background colour methods' do
98
- it { described.on_black.must_equal("\e[40m") }
99
- it { described.on_red.must_equal("\e[41m") }
100
- it { described.on_green.must_equal("\e[42m") }
101
- it { described.on_yellow.must_equal("\e[43m") }
102
- it { described.on_blue.must_equal("\e[44m") }
103
- it { described.on_magenta.must_equal("\e[45m") }
104
- it { described.on_cyan.must_equal("\e[46m") }
105
- it { described.on_light_grey.must_equal("\e[47m") }
106
- it { described.on_default.must_equal("\e[49m") }
107
- it { described.on_dark_grey.must_equal("\e[100m") }
108
- it { described.on_light_red.must_equal("\e[101m") }
109
- it { described.on_light_green.must_equal("\e[102m") }
110
- it { described.on_light_yellow.must_equal("\e[103m") }
111
- it { described.on_light_blue.must_equal("\e[104m") }
112
- it { described.on_light_magenta.must_equal("\e[105m") }
113
- it { described.on_light_cyan.must_equal("\e[106m") }
114
- it { described.on_white.must_equal("\e[107m") }
115
-
116
- it 'returns an escape sequence for the background colour and resets ' \
117
- 'after calling the block' do
118
- described.on_red do
119
- 'livermorium'
120
- end.must_equal("\e[41mlivermorium\e[49m")
121
- end
122
- end
123
-
124
65
  end # Colours
125
66
 
126
67
  end # EscapeSequences
@@ -0,0 +1,185 @@
1
+ require 'test_helper'
2
+
3
+ module Vedeu
4
+
5
+ module EscapeSequences
6
+
7
+ describe Foreground do
8
+
9
+ let(:described) { Vedeu::EscapeSequences::Foreground }
10
+
11
+ describe '.black' do
12
+ context 'when a block is given' do
13
+ it { described.black { 'test' }.must_equal("\e[30mtest\e[39m") }
14
+ end
15
+
16
+ context 'when a block is not given' do
17
+ it { described.black.must_equal("\e[30m") }
18
+ end
19
+ end
20
+
21
+ describe '.red' do
22
+ context 'when a block is given' do
23
+ it { described.red { 'test' }.must_equal("\e[31mtest\e[39m") }
24
+ end
25
+
26
+ context 'when a block is not given' do
27
+ it { described.red.must_equal("\e[31m") }
28
+ end
29
+ end
30
+
31
+ describe '.green' do
32
+ context 'when a block is given' do
33
+ it { described.green { 'test' }.must_equal("\e[32mtest\e[39m") }
34
+ end
35
+
36
+ context 'when a block is not given' do
37
+ it { described.green.must_equal("\e[32m") }
38
+ end
39
+ end
40
+
41
+ describe '.yellow' do
42
+ context 'when a block is given' do
43
+ it { described.yellow { 'test' }.must_equal("\e[33mtest\e[39m") }
44
+ end
45
+
46
+ context 'when a block is not given' do
47
+ it { described.yellow.must_equal("\e[33m") }
48
+ end
49
+ end
50
+
51
+ describe '.blue' do
52
+ context 'when a block is given' do
53
+ it { described.blue { 'test' }.must_equal("\e[34mtest\e[39m") }
54
+ end
55
+
56
+ context 'when a block is not given' do
57
+ it { described.blue.must_equal("\e[34m") }
58
+ end
59
+ end
60
+
61
+ describe '.magenta' do
62
+ context 'when a block is given' do
63
+ it { described.magenta { 'test' }.must_equal("\e[35mtest\e[39m") }
64
+ end
65
+
66
+ context 'when a block is not given' do
67
+ it { described.magenta.must_equal("\e[35m") }
68
+ end
69
+ end
70
+
71
+ describe '.cyan' do
72
+ context 'when a block is given' do
73
+ it { described.cyan { 'test' }.must_equal("\e[36mtest\e[39m") }
74
+ end
75
+
76
+ context 'when a block is not given' do
77
+ it { described.cyan.must_equal("\e[36m") }
78
+ end
79
+ end
80
+
81
+ describe '.light_grey' do
82
+ context 'when a block is given' do
83
+ it { described.light_grey { 'test' }.must_equal("\e[37mtest\e[39m") }
84
+ end
85
+
86
+ context 'when a block is not given' do
87
+ it { described.light_grey.must_equal("\e[37m") }
88
+ end
89
+ end
90
+
91
+ describe '.default' do
92
+ context 'when a block is given' do
93
+ it { described.default { 'test' }.must_equal("\e[39mtest\e[39m") }
94
+ end
95
+
96
+ context 'when a block is not given' do
97
+ it { described.default.must_equal("\e[39m") }
98
+ end
99
+ end
100
+
101
+ describe '.dark_grey' do
102
+ context 'when a block is given' do
103
+ it { described.dark_grey { 'test' }.must_equal("\e[90mtest\e[39m") }
104
+ end
105
+
106
+ context 'when a block is not given' do
107
+ it { described.dark_grey.must_equal("\e[90m") }
108
+ end
109
+ end
110
+
111
+ describe '.light_red' do
112
+ context 'when a block is given' do
113
+ it { described.light_red { 'test' }.must_equal("\e[91mtest\e[39m") }
114
+ end
115
+
116
+ context 'when a block is not given' do
117
+ it { described.light_red.must_equal("\e[91m") }
118
+ end
119
+ end
120
+
121
+ describe '.light_green' do
122
+ context 'when a block is given' do
123
+ it { described.light_green { 'test' }.must_equal("\e[92mtest\e[39m") }
124
+ end
125
+
126
+ context 'when a block is not given' do
127
+ it { described.light_green.must_equal("\e[92m") }
128
+ end
129
+ end
130
+
131
+ describe '.light_yellow' do
132
+ context 'when a block is given' do
133
+ it { described.light_yellow { 'test' }.must_equal("\e[93mtest\e[39m") }
134
+ end
135
+
136
+ context 'when a block is not given' do
137
+ it { described.light_yellow.must_equal("\e[93m") }
138
+ end
139
+ end
140
+
141
+ describe '.light_blue' do
142
+ context 'when a block is given' do
143
+ it { described.light_blue { 'test' }.must_equal("\e[94mtest\e[39m") }
144
+ end
145
+
146
+ context 'when a block is not given' do
147
+ it { described.light_blue.must_equal("\e[94m") }
148
+ end
149
+ end
150
+
151
+ describe '.light_magenta' do
152
+ context 'when a block is given' do
153
+ it { described.light_magenta { 'test' }.must_equal("\e[95mtest\e[39m") }
154
+ end
155
+
156
+ context 'when a block is not given' do
157
+ it { described.light_magenta.must_equal("\e[95m") }
158
+ end
159
+ end
160
+
161
+ describe '.light_cyan' do
162
+ context 'when a block is given' do
163
+ it { described.light_cyan { 'test' }.must_equal("\e[96mtest\e[39m") }
164
+ end
165
+
166
+ context 'when a block is not given' do
167
+ it { described.light_cyan.must_equal("\e[96m") }
168
+ end
169
+ end
170
+
171
+ describe '.white' do
172
+ context 'when a block is given' do
173
+ it { described.white { 'test' }.must_equal("\e[97mtest\e[39m") }
174
+ end
175
+
176
+ context 'when a block is not given' do
177
+ it { described.white.must_equal("\e[97m") }
178
+ end
179
+ end
180
+
181
+ end # Foreground
182
+
183
+ end # EscapeSequences
184
+
185
+ end # Vedeu
@@ -8,15 +8,20 @@ module Vedeu
8
8
 
9
9
  let(:described) { Vedeu::EscapeSequences::Mouse }
10
10
 
11
- describe 'mouse methods' do
11
+ describe '.mouse_x10_on' do
12
12
  it { described.mouse_x10_on.must_equal("\e[?9h") }
13
+ end
14
+
15
+ describe '.mouse_x10_on' do
13
16
  it { described.mouse_x10_off.must_equal("\e[?9l") }
17
+ end
18
+
19
+ describe '.mouse_on' do
14
20
  it { described.mouse_on.must_equal("\e[?1000h") }
15
- it { described.mouse_off.must_equal("\e[?1000l") }
16
21
  end
17
22
 
18
- describe '.mouse_codes' do
19
- it { described.mouse_codes.must_be_instance_of(Hash) }
23
+ describe '.mouse_off' do
24
+ it { described.mouse_off.must_equal("\e[?1000l") }
20
25
  end
21
26
 
22
27
  end # Mouse
@@ -47,17 +47,36 @@ module Vedeu
47
47
  Vedeu.borders.stubs(:by_name).returns(border)
48
48
  end
49
49
 
50
- describe 'accessors' do
51
- it do
52
- instance.must_respond_to(:y)
53
- instance.must_respond_to(:yn)
54
- instance.must_respond_to(:x)
55
- instance.must_respond_to(:xn)
56
- instance.must_respond_to(:top)
57
- instance.must_respond_to(:bottom)
58
- instance.must_respond_to(:left)
59
- instance.must_respond_to(:right)
60
- end
50
+ describe '#y' do
51
+ it { instance.must_respond_to(:y) }
52
+ end
53
+
54
+ describe '#yn' do
55
+ it { instance.must_respond_to(:yn) }
56
+ end
57
+
58
+ describe '#x' do
59
+ it { instance.must_respond_to(:x) }
60
+ end
61
+
62
+ describe '#xn' do
63
+ it { instance.must_respond_to(:xn) }
64
+ end
65
+
66
+ describe '#top' do
67
+ it { instance.must_respond_to(:top) }
68
+ end
69
+
70
+ describe '#bottom' do
71
+ it { instance.must_respond_to(:bottom) }
72
+ end
73
+
74
+ describe '#left' do
75
+ it { instance.must_respond_to(:left) }
76
+ end
77
+
78
+ describe '#right' do
79
+ it { instance.must_respond_to(:right) }
61
80
  end
62
81
 
63
82
  describe '#initialize' do
@@ -275,6 +294,10 @@ module Vedeu
275
294
  end
276
295
  end
277
296
 
297
+ describe '#==' do
298
+ it { instance.must_respond_to(:==) }
299
+ end
300
+
278
301
  describe '#centre' do
279
302
  subject { instance.centre }
280
303
 
@@ -9,58 +9,33 @@ module Vedeu
9
9
  let(:described) { Vedeu::Geometries::DSL }
10
10
  let(:instance) { described.new(model) }
11
11
  let(:model) { Vedeu::Geometries::Geometry.new }
12
+ let(:_name) { :vedeu_geometries_dsl }
12
13
 
13
14
  describe '.geometry' do
14
- it { described.must_respond_to(:geometry) }
15
- end
16
-
17
- # describe '#alignment' do
18
- # let(:_value) { :none }
19
- # let(:width) { 20 }
20
-
21
- # subject { instance.alignment(_value, width) }
22
-
23
- # context 'when a value and width is given' do
24
- # it { subject.must_be_instance_of(Vedeu::Geometries::Geometry) }
25
-
26
- # context 'when the value is :center' do
27
- # let(:_value) { :center }
28
-
29
- # it { subject.alignment.must_equal(:centre) }
30
- # end
31
-
32
- # context 'when the value is :centre' do
33
- # let(:_value) { :centre }
34
-
35
- # it { subject.alignment.must_equal(:centre) }
36
- # end
37
-
38
- # context 'when the value is :left' do
39
- # let(:_value) { :left }
40
-
41
- # it { subject.alignment.must_equal(:left) }
42
- # end
43
-
44
- # context 'when the value is :right' do
45
- # let(:_value) { :right }
15
+ subject {
16
+ described.geometry(_name) do
17
+ # ...
18
+ end
19
+ }
46
20
 
47
- # it { subject.alignment.must_equal(:right) }
48
- # end
49
- # end
21
+ context 'when the name is not given' do
22
+ let(:_name) {}
50
23
 
51
- # context 'when a value is not given' do
52
- # let(:_value) {}
24
+ it { proc { subject }.must_raise(Vedeu::Error::MissingRequired) }
25
+ end
53
26
 
54
- # it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
55
- # end
27
+ context 'when the name is given' do
28
+ context 'when the block is not given' do
29
+ subject { described.geometry(_name) }
56
30
 
57
- # context 'when a width is not given' do
58
- # let(:_value) { :none }
59
- # let(:width) {}
31
+ it { proc { subject }.must_raise(Vedeu::Error::RequiresBlock) }
32
+ end
60
33
 
61
- # it { proc { subject }.must_raise(Vedeu::Error::InvalidSyntax) }
62
- # end
63
- # end
34
+ context 'when the block is given' do
35
+ it { subject.must_be_instance_of(Vedeu::Geometries::Geometry) }
36
+ end
37
+ end
38
+ end
64
39
 
65
40
  describe '#align' do
66
41
  let(:vertical) { :top }
@@ -90,9 +65,9 @@ module Vedeu
90
65
  context 'when the height is given' do
91
66
  it { subject.must_be_instance_of(Vedeu::Geometries::Geometry) }
92
67
  it { subject.vertical_alignment.
93
- must_be_instance_of(Vedeu::Geometries::VerticalAlignment) }
68
+ must_be_instance_of(Vedeu::Coercers::VerticalAlignment) }
94
69
  it { subject.horizontal_alignment.
95
- must_be_instance_of(Vedeu::Geometries::HorizontalAlignment) }
70
+ must_be_instance_of(Vedeu::Coercers::HorizontalAlignment) }
96
71
  it { subject.height.must_equal(20) }
97
72
  it { subject.width.must_equal(20) }
98
73
  end
@@ -118,9 +93,9 @@ module Vedeu
118
93
  context 'when the width is given' do
119
94
  it { subject.must_be_instance_of(Vedeu::Geometries::Geometry) }
120
95
  it { subject.vertical_alignment.
121
- must_be_instance_of(Vedeu::Geometries::VerticalAlignment) }
96
+ must_be_instance_of(Vedeu::Coercers::VerticalAlignment) }
122
97
  it { subject.horizontal_alignment.
123
- must_be_instance_of(Vedeu::Geometries::HorizontalAlignment) }
98
+ must_be_instance_of(Vedeu::Coercers::HorizontalAlignment) }
124
99
  it { subject.height.must_equal(20) }
125
100
  it { subject.width.must_equal(20) }
126
101
  end
@@ -206,8 +181,6 @@ module Vedeu
206
181
 
207
182
  subject { instance.align_centre(width) }
208
183
 
209
- it { instance.must_respond_to(:align_center) }
210
-
211
184
  context 'when a width is given' do
212
185
  it { subject.must_be_instance_of(Vedeu::Geometries::Geometry) }
213
186
  end
@@ -219,6 +192,10 @@ module Vedeu
219
192
  end
220
193
  end
221
194
 
195
+ describe '#align_center' do
196
+ it { instance.must_respond_to(:align_center) }
197
+ end
198
+
222
199
  describe '#align_left' do
223
200
  let(:width) { 20 }
224
201
 
@@ -304,8 +281,6 @@ module Vedeu
304
281
  describe '#height' do
305
282
  subject { instance.height(6) }
306
283
 
307
- it { instance.must_respond_to(:height=) }
308
-
309
284
  it 'sets the attribute to the value' do
310
285
  subject.call.must_equal(6)
311
286
  end
@@ -325,6 +300,10 @@ module Vedeu
325
300
  end
326
301
  end
327
302
 
303
+ describe '#height=' do
304
+ it { instance.must_respond_to(:height=) }
305
+ end
306
+
328
307
  describe '#rows' do
329
308
  before { Vedeu::Terminal.stubs(:size).returns([25, 80]) }
330
309
 
@@ -367,8 +346,6 @@ module Vedeu
367
346
  describe '#width' do
368
347
  subject { instance.width(25) }
369
348
 
370
- it { instance.must_respond_to(:width=) }
371
-
372
349
  it 'sets the attribute to the value' do
373
350
  subject.call.must_equal(25)
374
351
  end
@@ -388,10 +365,16 @@ module Vedeu
388
365
  end
389
366
  end
390
367
 
391
- describe '#x' do
392
- subject { instance.x(2) }
368
+ describe '#width=' do
369
+ it { instance.must_respond_to(:width=) }
370
+ end
393
371
 
372
+ describe '#x=' do
394
373
  it { instance.must_respond_to(:x=) }
374
+ end
375
+
376
+ describe '#x' do
377
+ subject { instance.x(2) }
395
378
 
396
379
  it 'sets the attribute to the value' do
397
380
  subject.must_equal(2)
@@ -446,11 +429,13 @@ module Vedeu
446
429
  end
447
430
  end
448
431
 
432
+ describe '#y=' do
433
+ it { instance.must_respond_to(:y=) }
434
+ end
435
+
449
436
  describe '#y' do
450
437
  subject { instance.y(5) }
451
438
 
452
- it { instance.must_respond_to(:y=) }
453
-
454
439
  it 'sets the attribute to the value' do
455
440
  subject.must_equal(5)
456
441
  end
@@ -504,10 +489,13 @@ module Vedeu
504
489
  end
505
490
  end
506
491
 
492
+ describe '#xn=' do
493
+ it { instance.must_respond_to(:xn=) }
494
+ end
495
+
507
496
  describe '#xn' do
508
497
  subject { instance.xn(15) }
509
498
 
510
- it { instance.must_respond_to(:xn=) }
511
499
  it { subject.must_equal(15) }
512
500
 
513
501
  context 'when a block is given' do
@@ -523,10 +511,13 @@ module Vedeu
523
511
  end
524
512
  end
525
513
 
514
+ describe '#yn=' do
515
+ it { instance.must_respond_to(:yn=) }
516
+ end
517
+
526
518
  describe '#yn' do
527
519
  subject { instance.yn(8) }
528
520
 
529
- it { instance.must_respond_to(:yn=) }
530
521
  it { subject.must_equal(8) }
531
522
 
532
523
  context 'when a block is given' do