vedeu 0.2.12 → 0.3.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 (305) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/Guardfile +13 -0
  4. data/README.md +11 -9
  5. data/Rakefile +10 -1
  6. data/bin/vedeu_test +14 -0
  7. data/config/cucumber.yml +8 -0
  8. data/docs/api.md +45 -16
  9. data/docs/events.md +21 -9
  10. data/docs/getting_started.md +16 -0
  11. data/docs/views.md +158 -0
  12. data/examples/borders_app.rb +236 -110
  13. data/examples/colour_support.sh +98 -0
  14. data/examples/colours_app.rb +41 -0
  15. data/examples/configuration_app.rb +11 -6
  16. data/examples/cursor_app.rb +60 -61
  17. data/examples/focus_app.rb +72 -34
  18. data/examples/hello_world.rb +13 -8
  19. data/examples/lines_app.rb +37 -28
  20. data/features/start_stop.feature +27 -0
  21. data/features/support/env.rb +14 -0
  22. data/lib/vedeu/all.rb +29 -0
  23. data/lib/vedeu/api.rb +39 -0
  24. data/lib/vedeu/application.rb +15 -7
  25. data/lib/vedeu/bindings.rb +121 -0
  26. data/lib/vedeu/buffers/all.rb +10 -0
  27. data/lib/vedeu/{repositories/models → buffers}/buffer.rb +47 -64
  28. data/lib/vedeu/buffers/display_buffer.rb +118 -0
  29. data/lib/vedeu/configuration/all.rb +6 -0
  30. data/lib/vedeu/configuration/api.rb +3 -1
  31. data/lib/vedeu/configuration/cli.rb +3 -1
  32. data/lib/vedeu/configuration/configuration.rb +23 -2
  33. data/lib/vedeu/cursor/all.rb +23 -0
  34. data/lib/vedeu/cursor/cursor.rb +116 -0
  35. data/lib/vedeu/cursor/move_cursor.rb +137 -0
  36. data/lib/vedeu/cursor/toggle_cursor.rb +53 -0
  37. data/lib/vedeu/dsl/all.rb +28 -0
  38. data/lib/vedeu/dsl/components/all.rb +7 -0
  39. data/lib/vedeu/dsl/components/border.rb +104 -0
  40. data/lib/vedeu/dsl/components/geometry.rb +153 -0
  41. data/lib/vedeu/dsl/components/keymap.rb +93 -0
  42. data/lib/vedeu/dsl/components/menu.rb +82 -0
  43. data/lib/vedeu/dsl/composition.rb +72 -0
  44. data/lib/vedeu/dsl/interface.rb +210 -0
  45. data/lib/vedeu/dsl/line.rb +135 -0
  46. data/lib/vedeu/dsl/shared/all.rb +7 -0
  47. data/lib/vedeu/dsl/shared/colour.rb +85 -0
  48. data/lib/vedeu/dsl/shared/style.rb +38 -0
  49. data/lib/vedeu/dsl/shared/text.rb +102 -0
  50. data/lib/vedeu/dsl/shared/use.rb +47 -0
  51. data/lib/vedeu/dsl/stream.rb +49 -0
  52. data/lib/vedeu/dsl/view.rb +136 -0
  53. data/lib/vedeu/events/all.rb +10 -0
  54. data/lib/vedeu/{repositories/models → events}/event.rb +97 -8
  55. data/lib/vedeu/events/trigger.rb +58 -0
  56. data/lib/vedeu/exceptions.rb +34 -0
  57. data/lib/vedeu/input/all.rb +29 -0
  58. data/lib/vedeu/input/input.rb +26 -0
  59. data/lib/vedeu/{models → input}/key.rb +21 -11
  60. data/lib/vedeu/input/keymap.rb +130 -0
  61. data/lib/vedeu/input/keys.rb +8 -0
  62. data/lib/vedeu/input/mapper.rb +112 -0
  63. data/lib/vedeu/launcher.rb +7 -4
  64. data/lib/vedeu/models/all.rb +12 -0
  65. data/lib/vedeu/models/collection.rb +71 -0
  66. data/lib/vedeu/{repositories → models}/focus.rb +63 -21
  67. data/lib/vedeu/models/geometry.rb +100 -259
  68. data/lib/vedeu/{repositories/models → models}/group.rb +16 -14
  69. data/lib/vedeu/{repositories/models → models}/menu.rb +85 -22
  70. data/lib/vedeu/models/model.rb +51 -0
  71. data/lib/vedeu/models/view/all.rb +12 -0
  72. data/lib/vedeu/models/view/char.rb +84 -0
  73. data/lib/vedeu/models/view/chars.rb +8 -0
  74. data/lib/vedeu/models/view/composition.rb +101 -0
  75. data/lib/vedeu/models/view/interface.rb +215 -0
  76. data/lib/vedeu/models/view/interfaces.rb +8 -0
  77. data/lib/vedeu/models/view/line.rb +134 -0
  78. data/lib/vedeu/models/view/lines.rb +8 -0
  79. data/lib/vedeu/models/view/stream.rb +144 -0
  80. data/lib/vedeu/models/view/streams.rb +8 -0
  81. data/lib/vedeu/output/all.rb +8 -0
  82. data/lib/vedeu/output/border.rb +387 -0
  83. data/lib/vedeu/output/compositor.rb +41 -30
  84. data/lib/vedeu/output/output.rb +6 -13
  85. data/lib/vedeu/output/viewport.rb +78 -94
  86. data/lib/vedeu/output/writer.rb +29 -0
  87. data/lib/vedeu/presentation/all.rb +9 -0
  88. data/lib/vedeu/{colours → presentation}/background.rb +1 -9
  89. data/lib/vedeu/{colours → presentation}/colour.rb +21 -8
  90. data/lib/vedeu/{colours → presentation}/foreground.rb +5 -9
  91. data/lib/vedeu/presentation/presentation.rb +91 -0
  92. data/lib/vedeu/presentation/style.rb +47 -0
  93. data/lib/vedeu/{colours → presentation}/translator.rb +11 -5
  94. data/lib/vedeu/repositories/all.rb +5 -0
  95. data/lib/vedeu/repositories/menus.rb +5 -42
  96. data/lib/vedeu/{support → repositories}/repository.rb +78 -41
  97. data/lib/vedeu/support/all.rb +22 -0
  98. data/lib/vedeu/support/bounding_area.rb +2 -1
  99. data/lib/vedeu/support/coercions.rb +18 -1
  100. data/lib/vedeu/support/console.rb +73 -0
  101. data/lib/vedeu/support/content_geometry.rb +69 -0
  102. data/lib/vedeu/support/coordinate.rb +246 -0
  103. data/lib/vedeu/support/esc.rb +29 -2
  104. data/lib/vedeu/support/log.rb +36 -2
  105. data/lib/vedeu/support/node.rb +61 -0
  106. data/lib/vedeu/support/position.rb +28 -13
  107. data/lib/vedeu/support/position_validator.rb +79 -0
  108. data/lib/vedeu/support/read.rb +65 -0
  109. data/lib/vedeu/support/refresh.rb +8 -32
  110. data/lib/vedeu/support/terminal.rb +34 -4
  111. data/lib/vedeu/support/text.rb +104 -0
  112. data/lib/vedeu/support/trace.rb +11 -23
  113. data/lib/vedeu/support/visible.rb +75 -0
  114. data/lib/vedeu/support/write.rb +85 -0
  115. data/lib/vedeu/traps.rb +18 -0
  116. data/lib/vedeu.rb +41 -101
  117. data/test/integration/dsl/compositions_test.rb +27 -0
  118. data/test/integration/dsl/interfaces_test.rb +261 -0
  119. data/test/integration/dsl/keymaps_test.rb +42 -0
  120. data/test/integration/dsl/lines_test.rb +146 -0
  121. data/test/integration/dsl/menus_test.rb +59 -0
  122. data/test/integration/dsl/streams_test.rb +129 -0
  123. data/test/integration/dsl/views_test.rb +63 -0
  124. data/test/lib/vedeu/api_test.rb +163 -0
  125. data/test/lib/vedeu/application_test.rb +19 -10
  126. data/test/lib/vedeu/bindings_test.rb +54 -0
  127. data/test/lib/vedeu/buffers/all_test.rb +11 -0
  128. data/test/lib/vedeu/buffers/buffer_test.rb +196 -0
  129. data/test/lib/vedeu/buffers/display_buffer_test.rb +58 -0
  130. data/test/lib/vedeu/configuration/api_test.rb +42 -58
  131. data/test/lib/vedeu/configuration/cli_test.rb +4 -4
  132. data/test/lib/vedeu/configuration/configuration_test.rb +11 -29
  133. data/test/lib/vedeu/cursor/all_test.rb +33 -0
  134. data/test/lib/vedeu/cursor/cursor_test.rb +85 -0
  135. data/test/lib/vedeu/cursor/move_cursor_test.rb +212 -0
  136. data/test/lib/vedeu/cursor/toggle_cursor_test.rb +63 -0
  137. data/test/lib/vedeu/dsl/components/border_test.rb +414 -0
  138. data/test/lib/vedeu/dsl/components/geometry_test.rb +231 -0
  139. data/test/lib/vedeu/dsl/components/keymap_test.rb +80 -0
  140. data/test/lib/vedeu/dsl/components/menu_test.rb +115 -0
  141. data/test/lib/vedeu/dsl/composition_test.rb +41 -0
  142. data/test/lib/vedeu/dsl/interface_test.rb +470 -0
  143. data/test/lib/vedeu/dsl/line_test.rb +60 -0
  144. data/test/lib/vedeu/dsl/shared/colour_test.rb +100 -0
  145. data/test/lib/vedeu/dsl/shared/style_test.rb +22 -0
  146. data/test/lib/vedeu/dsl/shared/text_test.rb +15 -0
  147. data/test/lib/vedeu/dsl/shared/use_test.rb +27 -0
  148. data/test/lib/vedeu/dsl/stream_test.rb +26 -0
  149. data/test/lib/vedeu/dsl/view_test.rb +73 -0
  150. data/test/lib/vedeu/events/all_test.rb +11 -0
  151. data/test/lib/vedeu/events/event_test.rb +109 -0
  152. data/test/lib/vedeu/events/trigger_test.rb +60 -0
  153. data/test/lib/vedeu/input/all_test.rb +11 -0
  154. data/test/lib/vedeu/input/input_test.rb +7 -3
  155. data/test/lib/vedeu/input/key_test.rb +72 -0
  156. data/test/lib/vedeu/input/keymap_test.rb +89 -0
  157. data/test/lib/vedeu/input/mapper_test.rb +94 -0
  158. data/test/lib/vedeu/launcher_test.rb +19 -20
  159. data/test/lib/vedeu/models/collection_test.rb +114 -0
  160. data/test/lib/vedeu/{repositories → models}/focus_test.rb +46 -13
  161. data/test/lib/vedeu/models/geometry_test.rb +35 -39
  162. data/test/lib/vedeu/models/group_test.rb +100 -0
  163. data/test/lib/vedeu/models/menu_test.rb +288 -0
  164. data/test/lib/vedeu/models/model_test.rb +31 -0
  165. data/test/lib/vedeu/models/view/char_test.rb +166 -0
  166. data/test/lib/vedeu/models/view/chars_test.rb +18 -0
  167. data/test/lib/vedeu/models/view/composition_test.rb +41 -0
  168. data/test/lib/vedeu/models/view/interface_test.rb +128 -0
  169. data/test/lib/vedeu/models/view/interfaces_test.rb +18 -0
  170. data/test/lib/vedeu/models/view/line_test.rb +214 -0
  171. data/test/lib/vedeu/models/view/lines_test.rb +18 -0
  172. data/test/lib/vedeu/models/view/stream_test.rb +106 -0
  173. data/test/lib/vedeu/models/view/streams_test.rb +18 -0
  174. data/test/lib/vedeu/output/border_test.rb +357 -0
  175. data/test/lib/vedeu/output/compositor_test.rb +61 -15
  176. data/test/lib/vedeu/output/output_test.rb +25 -84
  177. data/test/lib/vedeu/output/viewport_test.rb +171 -45
  178. data/test/lib/vedeu/output/writer_test.rb +45 -0
  179. data/test/lib/vedeu/{colours → presentation}/background_test.rb +0 -0
  180. data/test/lib/vedeu/{colours → presentation}/colour_test.rb +5 -5
  181. data/test/lib/vedeu/{colours → presentation}/foreground_test.rb +0 -0
  182. data/test/lib/vedeu/presentation/presentation_test.rb +56 -0
  183. data/test/lib/vedeu/presentation/style_test.rb +69 -0
  184. data/test/lib/vedeu/presentation/translator_test.rb +63 -0
  185. data/test/lib/vedeu/repositories/all_test.rb +7 -0
  186. data/test/lib/vedeu/repositories/menus_test.rb +3 -156
  187. data/test/lib/vedeu/repositories/repository_test.rb +271 -0
  188. data/test/lib/vedeu/support/bounding_area_test.rb +3 -3
  189. data/test/lib/vedeu/support/coercions_test.rb +39 -0
  190. data/test/lib/vedeu/support/common_test.rb +31 -16
  191. data/test/lib/vedeu/support/console_test.rb +85 -0
  192. data/test/lib/vedeu/support/content_geometry_test.rb +107 -0
  193. data/test/lib/vedeu/support/coordinate_test.rb +190 -0
  194. data/test/lib/vedeu/support/esc_test.rb +18 -0
  195. data/test/lib/vedeu/support/grid_test.rb +15 -10
  196. data/test/lib/vedeu/support/log_test.rb +3 -0
  197. data/test/lib/vedeu/support/position_test.rb +22 -2
  198. data/test/lib/vedeu/support/position_validator_test.rb +11 -0
  199. data/test/lib/vedeu/support/read_test.rb +88 -0
  200. data/test/lib/vedeu/support/refresh_test.rb +44 -12
  201. data/test/lib/vedeu/support/sentence_test.rb +6 -4
  202. data/test/lib/vedeu/support/terminal_test.rb +81 -70
  203. data/test/lib/vedeu/support/text_test.rb +93 -0
  204. data/test/lib/vedeu/support/trace_test.rb +21 -9
  205. data/test/lib/vedeu/support/visible_test.rb +148 -0
  206. data/test/lib/vedeu/support/write_test.rb +136 -0
  207. data/test/lib/vedeu/traps_test.rb +11 -0
  208. data/test/lib/vedeu_test.rb +2 -0
  209. data/test/support/helpers/all.rb +7 -0
  210. data/test/support/helpers/dsl_model_test_class.rb +25 -0
  211. data/test/support/{test_classes → helpers}/helpers.rb +0 -2
  212. data/test/support/helpers/misc.rb +15 -0
  213. data/test/support/helpers/model_test_class.rb +34 -0
  214. data/test/support/{test_classes → helpers}/presentation.rb +0 -0
  215. data/test/support/{test_classes → helpers}/repositories.rb +3 -3
  216. data/test/support/{test_modules/repository.rb → helpers/repository_test_module.rb} +5 -1
  217. data/test/test_helper.rb +19 -22
  218. data/vedeu.gemspec +11 -6
  219. metadata +322 -181
  220. data/lib/vedeu/api/api.rb +0 -239
  221. data/lib/vedeu/api/composition.rb +0 -38
  222. data/lib/vedeu/api/defined.rb +0 -52
  223. data/lib/vedeu/api/helpers.rb +0 -161
  224. data/lib/vedeu/api/interface.rb +0 -287
  225. data/lib/vedeu/api/keymap.rb +0 -75
  226. data/lib/vedeu/api/line.rb +0 -107
  227. data/lib/vedeu/api/menu.rb +0 -111
  228. data/lib/vedeu/api/stream.rb +0 -96
  229. data/lib/vedeu/models/border.rb +0 -238
  230. data/lib/vedeu/models/char.rb +0 -43
  231. data/lib/vedeu/models/composition.rb +0 -72
  232. data/lib/vedeu/models/line.rb +0 -100
  233. data/lib/vedeu/models/stream.rb +0 -130
  234. data/lib/vedeu/models/style.rb +0 -52
  235. data/lib/vedeu/repositories/buffers.rb +0 -52
  236. data/lib/vedeu/repositories/cursors.rb +0 -64
  237. data/lib/vedeu/repositories/events.rb +0 -147
  238. data/lib/vedeu/repositories/groups.rb +0 -47
  239. data/lib/vedeu/repositories/interfaces.rb +0 -78
  240. data/lib/vedeu/repositories/keymaps.rb +0 -196
  241. data/lib/vedeu/repositories/models/cursor.rb +0 -209
  242. data/lib/vedeu/repositories/models/interface.rb +0 -163
  243. data/lib/vedeu/repositories/models/keymap.rb +0 -111
  244. data/lib/vedeu/repositories/models/offset.rb +0 -91
  245. data/lib/vedeu/repositories/offsets.rb +0 -69
  246. data/lib/vedeu/support/exceptions.rb +0 -34
  247. data/lib/vedeu/support/keymap_validator.rb +0 -100
  248. data/lib/vedeu/support/model.rb +0 -14
  249. data/lib/vedeu/support/presentation.rb +0 -86
  250. data/lib/vedeu/support/registrar.rb +0 -53
  251. data/test/integration/api/api_test.rb +0 -97
  252. data/test/integration/api_dsl/dsl_api_test.rb +0 -4
  253. data/test/integration/api_dsl/dsl_composition_test.rb +0 -4
  254. data/test/integration/api_dsl/dsl_defined_test.rb +0 -4
  255. data/test/integration/api_dsl/dsl_helpers_test.rb +0 -4
  256. data/test/integration/api_dsl/dsl_interface_test.rb +0 -4
  257. data/test/integration/api_dsl/dsl_keymap.rb +0 -4
  258. data/test/integration/api_dsl/dsl_line_test.rb +0 -4
  259. data/test/integration/api_dsl/dsl_menu_test.rb +0 -4
  260. data/test/integration/api_dsl/dsl_stream_test.rb +0 -138
  261. data/test/integration/cursors_test.rb +0 -9
  262. data/test/integration/defining_interfaces_test.rb +0 -26
  263. data/test/integration/run_once_test.rb +0 -26
  264. data/test/integration/views/basic_view_test.rb +0 -807
  265. data/test/lib/vedeu/api/api_test.rb +0 -204
  266. data/test/lib/vedeu/api/composition_test.rb +0 -31
  267. data/test/lib/vedeu/api/defined_test.rb +0 -79
  268. data/test/lib/vedeu/api/helpers_test.rb +0 -111
  269. data/test/lib/vedeu/api/interface_test.rb +0 -410
  270. data/test/lib/vedeu/api/keymap_test.rb +0 -65
  271. data/test/lib/vedeu/api/line_test.rb +0 -83
  272. data/test/lib/vedeu/api/menu_test.rb +0 -85
  273. data/test/lib/vedeu/api/stream_test.rb +0 -59
  274. data/test/lib/vedeu/colours/translator_test.rb +0 -22
  275. data/test/lib/vedeu/models/border_test.rb +0 -197
  276. data/test/lib/vedeu/models/char_test.rb +0 -52
  277. data/test/lib/vedeu/models/composition_test.rb +0 -45
  278. data/test/lib/vedeu/models/key_test.rb +0 -43
  279. data/test/lib/vedeu/models/line_test.rb +0 -123
  280. data/test/lib/vedeu/models/stream_test.rb +0 -233
  281. data/test/lib/vedeu/models/style_test.rb +0 -59
  282. data/test/lib/vedeu/repositories/buffers_test.rb +0 -37
  283. data/test/lib/vedeu/repositories/cursors_test.rb +0 -62
  284. data/test/lib/vedeu/repositories/events_test.rb +0 -57
  285. data/test/lib/vedeu/repositories/groups_test.rb +0 -28
  286. data/test/lib/vedeu/repositories/interfaces_test.rb +0 -51
  287. data/test/lib/vedeu/repositories/keymaps_test.rb +0 -223
  288. data/test/lib/vedeu/repositories/models/buffer_test.rb +0 -174
  289. data/test/lib/vedeu/repositories/models/cursor_test.rb +0 -158
  290. data/test/lib/vedeu/repositories/models/event_test.rb +0 -53
  291. data/test/lib/vedeu/repositories/models/group_test.rb +0 -98
  292. data/test/lib/vedeu/repositories/models/interface_test.rb +0 -130
  293. data/test/lib/vedeu/repositories/models/keymap_test.rb +0 -27
  294. data/test/lib/vedeu/repositories/models/menu_test.rb +0 -246
  295. data/test/lib/vedeu/repositories/models/offset_test.rb +0 -128
  296. data/test/lib/vedeu/repositories/offsets_test.rb +0 -39
  297. data/test/lib/vedeu/support/keymap_validator_test.rb +0 -62
  298. data/test/lib/vedeu/support/model_test.rb +0 -23
  299. data/test/lib/vedeu/support/presentation_test.rb +0 -53
  300. data/test/lib/vedeu/support/registrar_test.rb +0 -94
  301. data/test/lib/vedeu/support/repository_test.rb +0 -208
  302. data/test/support/test_classes/all.rb +0 -5
  303. data/test/support/test_classes/coercions.rb +0 -16
  304. data/test/support/test_classes/model.rb +0 -23
  305. data/test/support/test_modules/all.rb +0 -1
@@ -11,156 +11,282 @@ require 'vedeu'
11
11
  class VedeuBordersApp
12
12
  include Vedeu
13
13
 
14
- event(:_initialize_) { trigger(:_refresh_) }
15
-
16
- interface 'lur' do
17
- border
18
- x 2
19
- y 2
20
- height 3
21
- width 7
14
+ configure do
15
+ colour_mode 16777216
16
+ debug!
17
+ log '/tmp/vedeu_borders_app.log'
18
+ end
19
+
20
+ bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
21
+
22
+ interface 'default_border' do
23
+ border do
24
+ end
25
+ geometry do
26
+ x 2
27
+ y 2
28
+ height 3
29
+ width 7
30
+ end
22
31
  colour foreground: '#ffffff', background: '#ff0000'
23
32
  end
24
33
 
25
- interface 'tan' do
26
- x 11
27
- y 2
28
- height 3
29
- width 7
34
+ interface 'border_off' do
35
+ geometry do
36
+ x 11
37
+ y 2
38
+ height 3
39
+ width 7
40
+ end
30
41
  colour foreground: '#ffffff', background: '#00ff00'
31
42
  end
32
43
 
33
- interface 'tal' do
34
- border show_top: false
35
- x 20
36
- y 2
37
- height 3
38
- width 7
44
+ interface 'no_top' do
45
+ border do
46
+ show_top false
47
+ end
48
+ geometry do
49
+ x 20
50
+ y 2
51
+ height 3
52
+ width 7
53
+ end
39
54
  colour foreground: '#ffffff', background: '#0000ff'
40
55
  end
41
56
 
42
- interface 'ums' do
43
- border show_bottom: false
44
- x 29
45
- y 2
46
- height 3
47
- width 7
57
+ interface 'no_bottom' do
58
+ border do
59
+ show_bottom false
60
+ end
61
+ geometry do
62
+ x 29
63
+ y 2
64
+ height 3
65
+ width 7
66
+ end
48
67
  colour foreground: '#000000', background: '#ffff00'
49
68
  end
50
69
 
51
- interface 'ulp' do
52
- border show_left: false
53
- x 38
54
- y 2
55
- height 3
56
- width 7
70
+ interface 'no_left' do
71
+ border do
72
+ show_left false
73
+ end
74
+ geometry do
75
+ x 38
76
+ y 2
77
+ height 3
78
+ width 7
79
+ end
57
80
  colour foreground: '#000000', background: '#ffff00'
58
81
  end
59
82
 
60
- interface 'hur' do
61
- border show_right: false
62
- x 47
63
- y 2
64
- height 3
65
- width 7
83
+ interface 'no_right' do
84
+ border do
85
+ show_right false
86
+ end
87
+ geometry do
88
+ x 47
89
+ y 2
90
+ height 3
91
+ width 7
92
+ end
66
93
  colour foreground: '#000000', background: '#ffff00'
67
94
  end
68
95
 
69
- interface 'sto' do
70
- border top_right: 'B', top_left: 'A', bottom_right: 'D', bottom_left: 'C'
71
- x 2
72
- y 7
73
- height 3
74
- width 7
96
+ interface 'custom_corners' do
97
+ border do
98
+ top_right 'B'
99
+ top_left 'A'
100
+ bottom_right 'D'
101
+ bottom_left 'C'
102
+ end
103
+ geometry do
104
+ x 2
105
+ y 7
106
+ height 3
107
+ width 7
108
+ end
75
109
  colour foreground: '#ffffff', background: '#ff0000'
76
110
  end
77
111
 
78
- interface 'sod' do
79
- border horizontal: '*', vertical: '$'
80
- x 11
81
- y 7
82
- height 3
83
- width 7
112
+ interface 'custom_horizontal_and_vertical' do
113
+ border do
114
+ horizontal '*'
115
+ vertical '$'
116
+ end
117
+ geometry do
118
+ x 11
119
+ y 7
120
+ height 3
121
+ width 7
122
+ end
84
123
  colour foreground: '#ffffff', background: '#00ff00'
85
124
  end
86
125
 
87
- interface 'sil' do
88
- border show_right: false, show_bottom: false, show_left: false
89
- x 20
90
- y 7
91
- height 3
92
- width 7
126
+ interface 'only_top' do
127
+ border do
128
+ show_right false
129
+ show_bottom false
130
+ show_left false
131
+ end
132
+ geometry do
133
+ x 20
134
+ y 7
135
+ height 3
136
+ width 7
137
+ end
93
138
  colour foreground: '#ffffff', background: '#0000ff'
94
139
  end
95
140
 
96
- interface 'ver' do
97
- border show_top: false, show_right: false, show_left: false
98
- x 29
99
- y 7
100
- height 3
101
- width 7
141
+ interface 'only_bottom' do
142
+ border do
143
+ show_top false
144
+ show_right false
145
+ show_left false
146
+ end
147
+ geometry do
148
+ x 29
149
+ y 7
150
+ height 3
151
+ width 7
152
+ end
102
153
  colour foreground: '#000000', background: '#ffff00'
103
154
  end
104
155
 
105
- interface 'ico' do
106
- border show_top: false, show_bottom: false, show_right: false
107
- x 38
108
- y 7
109
- height 3
110
- width 7
156
+ interface 'only_left' do
157
+ border do
158
+ show_top false
159
+ show_bottom false
160
+ show_right false
161
+ end
162
+ geometry do
163
+ x 38
164
+ y 7
165
+ height 3
166
+ width 7
167
+ end
111
168
  colour foreground: '#000000', background: '#ffff00'
112
169
  end
113
170
 
114
- interface 'sel' do
115
- border show_top: false, show_bottom: false, show_left: false
116
- x 47
117
- y 7
118
- height 3
119
- width 7
171
+ interface 'only_right' do
172
+ border do
173
+ show_top false
174
+ show_bottom false
175
+ show_left false
176
+ end
177
+ geometry do
178
+ x 47
179
+ y 7
180
+ height 3
181
+ width 7
182
+ end
120
183
  colour foreground: '#000000', background: '#ffff00'
121
184
  end
122
185
 
123
- interface 'ens' do
124
- border colour: { foreground: '#ffff00', background: '#0000ff' }
125
- x 2
126
- y 12
127
- height 3
128
- width 7
129
- colour foreground: '#ffffff', background: '#ff0000'
130
- end
131
-
132
- interface 'eab' do
133
- border style: 'negative'
134
- x 11
135
- y 12
136
- height 3
137
- width 7
138
- colour foreground: '#000000', background: '#00ff00'
139
- style 'normal'
186
+ interface 'custom_colour' do
187
+ border do
188
+ colour foreground: '#ffff00', background: '#0000ff'
189
+ end
190
+ geometry do
191
+ x 2
192
+ y 12
193
+ height 3
194
+ width 7
195
+ end
196
+ colour foreground: '#ffffff', background: '#ff0000'
140
197
  end
141
198
 
142
- render do
143
- view('lur') { line 'on' }
144
- view('tan') { line 'off' }
145
- view('tal') { line 'no t' }
146
- view('ums') { line 'no b' }
147
- view('ulp') { line 'no l' }
148
- view('hur') { line 'no r' }
149
-
150
- view('sto') { line 'chars'; line '1' }
151
- view('sod') { line 'chars'; line '2' }
152
- view('sil') { line 'only'; line 't' }
153
- view('ver') { line 'only'; line 'b' }
154
- view('ico') { line 'only'; line 'l' }
155
- view('sel') { line 'only'; line 'r' }
156
-
157
- view('ens') { line 'color' }
158
- view('eab') { line 'style' }
199
+ interface 'negative' do
200
+ border do
201
+ style 'negative'
202
+ end
203
+ geometry do
204
+ x 11
205
+ y 12
206
+ height 3
207
+ width 7
208
+ end
209
+ colour foreground: '#000000', background: '#00ff00'
210
+ style 'normal'
159
211
  end
160
212
 
161
- Vedeu.configure do
162
- debug!
163
- log '/tmp/vedeu_borders_app.log'
213
+ renders do
214
+ view('default_border') do
215
+ lines do
216
+ line 'on'
217
+ end
218
+ end
219
+ view('border_off') do
220
+ lines do
221
+ line 'off'
222
+ end
223
+ end
224
+ view('no_top') do
225
+ lines do
226
+ line 'no t'
227
+ end
228
+ end
229
+ view('no_bottom') do
230
+ lines do
231
+ line 'no b'
232
+ end
233
+ end
234
+ view('no_left') do
235
+ lines do
236
+ line 'no l'
237
+ end
238
+ end
239
+ view('no_right') do
240
+ lines do
241
+ line 'no r'
242
+ end
243
+ end
244
+ view('custom_corners') do
245
+ lines do
246
+ line 'chars'
247
+ line '1'
248
+ end
249
+ end
250
+ view('custom_horizontal_and_vertical') do
251
+ lines do
252
+ line 'chars'
253
+ line '2'
254
+ end
255
+ end
256
+ view('only_top') do
257
+ lines do
258
+ line 'only'
259
+ line 't'
260
+ end
261
+ end
262
+ view('only_bottom') do
263
+ lines do
264
+ line 'only'
265
+ line 'b'
266
+ end
267
+ end
268
+ view('only_left') do
269
+ lines do
270
+ line 'only'
271
+ line 'l'
272
+ end
273
+ end
274
+ view('only_right') do
275
+ lines do
276
+ line 'only'
277
+ line 'r'
278
+ end
279
+ end
280
+ view('custom_colour') do
281
+ lines do
282
+ line 'color'
283
+ end
284
+ end
285
+ view('negative') do
286
+ lines do
287
+ line 'style'
288
+ end
289
+ end
164
290
  end
165
291
 
166
292
  def self.start(argv = ARGV)
@@ -0,0 +1,98 @@
1
+ #!/bin/bash
2
+ #
3
+ # This file echoes a bunch of 24-bit color codes
4
+ # to the terminal to demonstrate its functionality.
5
+ # The foreground escape sequence is ^[38;2;<r>;<g>;<b>m
6
+ # The background escape sequence is ^[48;2;<r>;<g>;<b>m
7
+ # <r> <g> <b> range from 0 to 255 inclusive.
8
+ # The escape sequence ^[0m returns output to default
9
+
10
+ setBackgroundColor()
11
+ {
12
+ echo -en "\x1b[48;2;$1;$2;$3""m"
13
+ }
14
+
15
+ resetOutput()
16
+ {
17
+ echo -en "\x1b[0m\n"
18
+ }
19
+
20
+ # Gives a color $1/255 % along HSV
21
+ # Who knows what happens when $1 is outside 0-255
22
+ # Echoes "$red $green $blue" where
23
+ # $red $green and $blue are integers
24
+ # ranging between 0 and 255 inclusive
25
+ rainbowColor()
26
+ {
27
+ let h=$1/43
28
+ let f=$1-43*$h
29
+ let t=$f*255/43
30
+ let q=255-t
31
+
32
+ if [ $h -eq 0 ]
33
+ then
34
+ echo "255 $t 0"
35
+ elif [ $h -eq 1 ]
36
+ then
37
+ echo "$q 255 0"
38
+ elif [ $h -eq 2 ]
39
+ then
40
+ echo "0 255 $t"
41
+ elif [ $h -eq 3 ]
42
+ then
43
+ echo "0 $q 255"
44
+ elif [ $h -eq 4 ]
45
+ then
46
+ echo "$t 0 255"
47
+ elif [ $h -eq 5 ]
48
+ then
49
+ echo "255 0 $q"
50
+ else
51
+ # execution should never reach here
52
+ echo "0 0 0"
53
+ fi
54
+ }
55
+
56
+ for i in `seq 0 127`; do
57
+ setBackgroundColor $i 0 0
58
+ echo -en " "
59
+ done
60
+ resetOutput
61
+ for i in `seq 255 128`; do
62
+ setBackgroundColor $i 0 0
63
+ echo -en " "
64
+ done
65
+ resetOutput
66
+
67
+ for i in `seq 0 127`; do
68
+ setBackgroundColor 0 $i 0
69
+ echo -n " "
70
+ done
71
+ resetOutput
72
+ for i in `seq 255 128`; do
73
+ setBackgroundColor 0 $i 0
74
+ echo -n " "
75
+ done
76
+ resetOutput
77
+
78
+ for i in `seq 0 127`; do
79
+ setBackgroundColor 0 0 $i
80
+ echo -n " "
81
+ done
82
+ resetOutput
83
+ for i in `seq 255 128`; do
84
+ setBackgroundColor 0 0 $i
85
+ echo -n " "
86
+ done
87
+ resetOutput
88
+
89
+ for i in `seq 0 127`; do
90
+ setBackgroundColor `rainbowColor $i`
91
+ echo -n " "
92
+ done
93
+ resetOutput
94
+ for i in `seq 255 128`; do
95
+ setBackgroundColor `rainbowColor $i`
96
+ echo -n " "
97
+ done
98
+ resetOutput
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ lib_dir = File.dirname(__FILE__) + '/../lib'
4
+ $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
5
+
6
+ -> { its -> { a } }
7
+ trap('INT') { exit! }
8
+
9
+ require 'vedeu'
10
+
11
+ class VedeuColoursApp
12
+ include Vedeu
13
+
14
+ configure do
15
+ colour_mode 16777216
16
+ debug!
17
+ log '/tmp/vedeu_colours_app.log'
18
+ end
19
+
20
+ bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
21
+
22
+ interface 'colours' do
23
+ border do
24
+ end
25
+ geometry do
26
+ centred!
27
+ height 8
28
+ width 8
29
+ end
30
+ colour foreground: '#000000', background: '#000000'
31
+ end
32
+
33
+ renders do
34
+ view('colours') do
35
+ lines do
36
+
37
+ end
38
+ end
39
+ end
40
+
41
+ end
@@ -22,23 +22,28 @@ class VedeuConfigurationApp
22
22
  include Vedeu
23
23
 
24
24
  configure do
25
+ colour_mode 16777216
25
26
  debug!
26
27
  log '/tmp/vedeu_configuration_app.log'
27
28
  end
28
29
 
29
30
  interface 'config' do
30
- width 40
31
- height 2
32
- centred!
31
+ geometry do
32
+ width 40
33
+ height 2
34
+ centred!
35
+ end
33
36
  end
34
37
 
35
- render do
38
+ renders do
36
39
  view 'config' do
37
- line Configuration.log.inspect + " " + Process.pid.to_s
40
+ lines do
41
+ line Configuration.log.inspect + " " + Process.pid.to_s
42
+ end
38
43
  end
39
44
  end
40
45
 
41
- keys('config') do
46
+ keymap('config') do
42
47
  key(' ') { Vedeu.trigger(:_refresh_config_) }
43
48
  end
44
49