vedeu 0.4.13 → 0.4.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (251) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -1
  3. data/.travis.yml +2 -1
  4. data/Guardfile +6 -5
  5. data/README.md +3 -30
  6. data/Rakefile +5 -5
  7. data/bin/vedeu_drb_client +1 -1
  8. data/bin/vedeu_drb_server +91 -89
  9. data/bin/vedeu_test +4 -0
  10. data/config/rubocop_enabled.yml +5 -10
  11. data/examples/borders_app.rb +2 -1
  12. data/examples/colours_app.rb +13 -8
  13. data/examples/configuration_app.rb +3 -2
  14. data/examples/cursor_app.rb +16 -11
  15. data/examples/drb_app.rb +88 -89
  16. data/examples/focus_app.rb +31 -32
  17. data/examples/geometry_app.rb +2 -1
  18. data/examples/hello_world.rb +2 -1
  19. data/examples/lines_app.rb +2 -1
  20. data/examples/material_colours_app.rb +126 -0
  21. data/examples/typed_commands/typed_commands_app.rb +5 -1
  22. data/examples/view_templates_app/view_templates_app.rb +6 -3
  23. data/lib/vedeu/all.rb +1 -1
  24. data/lib/vedeu/api.rb +18 -10
  25. data/lib/vedeu/application.rb +0 -1
  26. data/lib/vedeu/bindings.rb +77 -16
  27. data/lib/vedeu/buffers/all.rb +2 -5
  28. data/lib/vedeu/buffers/buffer.rb +69 -25
  29. data/lib/vedeu/buffers/display_buffer.rb +3 -7
  30. data/lib/vedeu/configuration/all.rb +3 -6
  31. data/lib/vedeu/configuration/api.rb +28 -4
  32. data/lib/vedeu/configuration/cli.rb +9 -9
  33. data/lib/vedeu/configuration/configuration.rb +11 -7
  34. data/lib/vedeu/cursor/all.rb +3 -6
  35. data/lib/vedeu/cursor/cursor.rb +22 -14
  36. data/lib/vedeu/cursor/move.rb +32 -22
  37. data/lib/vedeu/cursor/refresh_cursor.rb +1 -1
  38. data/lib/vedeu/debug.rb +2 -1
  39. data/lib/vedeu/distributed/client.rb +1 -7
  40. data/lib/vedeu/distributed/server.rb +0 -4
  41. data/lib/vedeu/distributed/subprocess.rb +1 -1
  42. data/lib/vedeu/distributed/templates/default_configuration.vedeu +1 -1
  43. data/lib/vedeu/distributed/test_application.rb +3 -5
  44. data/lib/vedeu/distributed/uri.rb +2 -2
  45. data/lib/vedeu/dsl/all.rb +6 -6
  46. data/lib/vedeu/dsl/components/all.rb +0 -3
  47. data/lib/vedeu/dsl/components/border.rb +20 -12
  48. data/lib/vedeu/dsl/components/geometry.rb +68 -3
  49. data/lib/vedeu/dsl/components/keymap.rb +1 -2
  50. data/lib/vedeu/dsl/composition.rb +8 -1
  51. data/lib/vedeu/dsl/interface.rb +61 -11
  52. data/lib/vedeu/dsl/line.rb +12 -12
  53. data/lib/vedeu/dsl/shared/all.rb +4 -7
  54. data/lib/vedeu/dsl/shared/colour.rb +2 -2
  55. data/lib/vedeu/dsl/shared/text.rb +2 -35
  56. data/lib/vedeu/dsl/shared/use.rb +2 -2
  57. data/lib/vedeu/dsl/view.rb +4 -4
  58. data/lib/vedeu/events/all.rb +3 -5
  59. data/lib/vedeu/events/event.rb +5 -5
  60. data/lib/vedeu/geometry/all.rb +11 -16
  61. data/lib/vedeu/geometry/area.rb +2 -5
  62. data/lib/vedeu/geometry/canvas.rb +12 -16
  63. data/lib/vedeu/geometry/dimension.rb +20 -22
  64. data/lib/vedeu/geometry/geometry.rb +28 -30
  65. data/lib/vedeu/geometry/grid.rb +1 -1
  66. data/lib/vedeu/geometry/index_position.rb +7 -0
  67. data/lib/vedeu/geometry/null_geometry.rb +61 -0
  68. data/lib/vedeu/geometry/position.rb +0 -3
  69. data/lib/vedeu/geometry/position_index.rb +7 -0
  70. data/lib/vedeu/geometry/position_validator.rb +44 -33
  71. data/lib/vedeu/input/all.rb +5 -4
  72. data/lib/vedeu/input/keymap.rb +0 -1
  73. data/lib/vedeu/input/mapper.rb +1 -3
  74. data/lib/vedeu/launcher.rb +6 -7
  75. data/lib/vedeu/main_loop.rb +1 -2
  76. data/lib/vedeu/models/all.rb +1 -0
  77. data/lib/vedeu/models/cell.rb +5 -8
  78. data/lib/vedeu/models/char.rb +50 -15
  79. data/lib/vedeu/models/composition.rb +8 -1
  80. data/lib/vedeu/models/focus.rb +4 -4
  81. data/lib/vedeu/models/group.rb +3 -3
  82. data/lib/vedeu/models/interface.rb +62 -46
  83. data/lib/vedeu/models/line.rb +1 -1
  84. data/lib/vedeu/models/null.rb +48 -0
  85. data/lib/vedeu/models/stream.rb +5 -5
  86. data/lib/vedeu/output/all.rb +20 -30
  87. data/lib/vedeu/output/border.rb +93 -40
  88. data/lib/vedeu/output/clear.rb +100 -15
  89. data/lib/vedeu/output/colour.rb +56 -12
  90. data/lib/vedeu/output/compressor.rb +59 -0
  91. data/lib/vedeu/output/html_char.rb +4 -2
  92. data/lib/vedeu/output/null_border.rb +16 -4
  93. data/lib/vedeu/output/output.rb +13 -21
  94. data/lib/vedeu/output/presentation.rb +28 -23
  95. data/lib/vedeu/output/refresh.rb +2 -2
  96. data/lib/vedeu/output/renderers/all.rb +80 -3
  97. data/lib/vedeu/output/renderers/file_renderer.rb +38 -2
  98. data/lib/vedeu/output/renderers/html_renderer.rb +6 -4
  99. data/lib/vedeu/output/renderers/json_renderer.rb +52 -0
  100. data/lib/vedeu/output/renderers/null_renderer.rb +14 -0
  101. data/lib/vedeu/output/renderers/terminal_renderer.rb +2 -12
  102. data/lib/vedeu/output/style.rb +33 -3
  103. data/lib/vedeu/output/text.rb +98 -1
  104. data/lib/vedeu/output/translator.rb +30 -7
  105. data/lib/vedeu/output/viewport.rb +43 -79
  106. data/lib/vedeu/output/wordwrap.rb +4 -4
  107. data/lib/vedeu/repositories/all.rb +22 -179
  108. data/lib/vedeu/repositories/collection.rb +11 -13
  109. data/lib/vedeu/repositories/collections/all.rb +8 -0
  110. data/lib/vedeu/repositories/collections/chars.rb +9 -0
  111. data/lib/vedeu/repositories/collections/events.rb +9 -0
  112. data/lib/vedeu/repositories/collections/interfaces.rb +9 -0
  113. data/lib/vedeu/repositories/collections/keys.rb +9 -0
  114. data/lib/vedeu/repositories/collections/lines.rb +9 -0
  115. data/lib/vedeu/repositories/collections/streams.rb +9 -0
  116. data/lib/vedeu/repositories/model.rb +7 -2
  117. data/lib/vedeu/repositories/repositories/all.rb +14 -0
  118. data/lib/vedeu/repositories/repositories/background_colours.rb +14 -0
  119. data/lib/vedeu/repositories/repositories/borders.rb +38 -0
  120. data/lib/vedeu/repositories/repositories/buffers.rb +36 -0
  121. data/lib/vedeu/repositories/repositories/colours.rb +63 -0
  122. data/lib/vedeu/repositories/repositories/cursors.rb +29 -0
  123. data/lib/vedeu/repositories/repositories/events_repository.rb +24 -0
  124. data/lib/vedeu/repositories/repositories/foreground_colours.rb +14 -0
  125. data/lib/vedeu/repositories/repositories/geometries.rb +37 -0
  126. data/lib/vedeu/repositories/repositories/groups.rb +24 -0
  127. data/lib/vedeu/repositories/repositories/interfaces_repository.rb +24 -0
  128. data/lib/vedeu/repositories/repositories/keymaps.rb +24 -0
  129. data/lib/vedeu/repositories/repositories/menus.rb +24 -0
  130. data/lib/vedeu/repositories/repository.rb +29 -47
  131. data/lib/vedeu/storage/all.rb +6 -0
  132. data/lib/vedeu/storage/associative_store.rb +47 -0
  133. data/lib/vedeu/storage/conveyor_store.rb +69 -0
  134. data/lib/vedeu/storage/fifo_store.rb +37 -0
  135. data/lib/vedeu/storage/store.rb +58 -0
  136. data/lib/vedeu/support/all.rb +5 -10
  137. data/lib/vedeu/support/common.rb +0 -8
  138. data/lib/vedeu/support/log.rb +13 -24
  139. data/lib/vedeu/support/template.rb +4 -1
  140. data/lib/vedeu/support/terminal.rb +10 -10
  141. data/lib/vedeu/support/trace.rb +15 -88
  142. data/lib/vedeu/support/visibility.rb +73 -0
  143. data/lib/vedeu.rb +37 -0
  144. data/test/lib/vedeu/api_test.rb +7 -3
  145. data/test/lib/vedeu/application_test.rb +9 -3
  146. data/test/lib/vedeu/bindings_test.rb +21 -0
  147. data/test/lib/vedeu/buffers/buffer_test.rb +110 -134
  148. data/test/lib/vedeu/buffers/display_buffer_test.rb +8 -0
  149. data/test/lib/vedeu/configuration/api_test.rb +5 -1
  150. data/test/lib/vedeu/configuration/configuration_test.rb +4 -6
  151. data/test/lib/vedeu/cursor/cursor_test.rb +25 -17
  152. data/test/lib/vedeu/cursor/move_test.rb +7 -7
  153. data/test/lib/vedeu/distributed/client_test.rb +1 -1
  154. data/test/lib/vedeu/distributed/subprocess_test.rb +3 -1
  155. data/test/lib/vedeu/distributed/uri_test.rb +5 -5
  156. data/test/lib/vedeu/dsl/components/geometry_test.rb +43 -0
  157. data/test/lib/vedeu/dsl/components/keymap_test.rb +1 -1
  158. data/test/lib/vedeu/dsl/composition_test.rb +6 -5
  159. data/test/lib/vedeu/dsl/interface_test.rb +81 -16
  160. data/test/lib/vedeu/dsl/shared/colour_test.rb +4 -4
  161. data/test/lib/vedeu/dsl/shared/text_test.rb +87 -9
  162. data/test/lib/vedeu/dsl/stream_test.rb +1 -1
  163. data/test/lib/vedeu/events/event_test.rb +3 -1
  164. data/test/lib/vedeu/events/trigger_test.rb +8 -4
  165. data/test/lib/vedeu/geometry/dimension_test.rb +1 -1
  166. data/test/lib/vedeu/geometry/geometry_test.rb +5 -3
  167. data/test/lib/vedeu/geometry/index_position_test.rb +30 -7
  168. data/test/lib/vedeu/geometry/null_geometry_test.rb +57 -0
  169. data/test/lib/vedeu/geometry/position_index_test.rb +14 -0
  170. data/test/lib/vedeu/geometry/position_validator_test.rb +17 -3
  171. data/test/lib/vedeu/input/keymap_test.rb +3 -1
  172. data/test/lib/vedeu/input/mapper_test.rb +8 -4
  173. data/test/lib/vedeu/launcher_test.rb +1 -1
  174. data/test/lib/vedeu/models/cell_test.rb +10 -8
  175. data/test/lib/vedeu/models/char_test.rb +52 -28
  176. data/test/lib/vedeu/models/composition_test.rb +26 -4
  177. data/test/lib/vedeu/models/group_test.rb +11 -5
  178. data/test/lib/vedeu/models/interface_test.rb +32 -19
  179. data/test/lib/vedeu/models/line_test.rb +21 -25
  180. data/test/lib/vedeu/models/menu_test.rb +10 -6
  181. data/test/lib/vedeu/models/null_test.rb +66 -0
  182. data/test/lib/vedeu/models/stream_test.rb +13 -10
  183. data/test/lib/vedeu/output/border_test.rb +29 -8
  184. data/test/lib/vedeu/output/clear_test.rb +23 -4
  185. data/test/lib/vedeu/output/colour_test.rb +20 -4
  186. data/test/lib/vedeu/output/compressor_test.rb +43 -0
  187. data/test/lib/vedeu/output/html_char_test.rb +29 -17
  188. data/test/lib/vedeu/output/null_border_test.rb +2 -1
  189. data/test/lib/vedeu/output/output_test.rb +20 -30
  190. data/test/lib/vedeu/output/presentation_test.rb +39 -16
  191. data/test/lib/vedeu/output/refresh_test.rb +14 -10
  192. data/test/lib/vedeu/output/renderers/all_test.rb +96 -0
  193. data/test/lib/vedeu/output/renderers/file_renderer_test.rb +1 -1
  194. data/test/lib/vedeu/output/renderers/html_renderer_test.rb +13 -9
  195. data/test/lib/vedeu/output/renderers/json_renderer_test.rb +52 -0
  196. data/test/lib/vedeu/output/renderers/null_renderer_test.rb +19 -0
  197. data/test/lib/vedeu/output/style_test.rb +41 -1
  198. data/test/lib/vedeu/output/text_test.rb +61 -10
  199. data/test/lib/vedeu/output/translator_test.rb +14 -0
  200. data/test/lib/vedeu/output/viewport_test.rb +22 -3
  201. data/test/lib/vedeu/output/virtual_terminal_test.rb +3 -3
  202. data/test/lib/vedeu/output/wordwrap_test.rb +58 -45
  203. data/test/lib/vedeu/repositories/collections/chars_test.rb +16 -0
  204. data/test/lib/vedeu/repositories/collections/events_test.rb +16 -0
  205. data/test/lib/vedeu/repositories/collections/interfaces_test.rb +16 -0
  206. data/test/lib/vedeu/repositories/collections/keys_test.rb +16 -0
  207. data/test/lib/vedeu/repositories/collections/lines_test.rb +16 -0
  208. data/test/lib/vedeu/repositories/collections/streams_test.rb +16 -0
  209. data/test/lib/vedeu/repositories/repositories/background_colours_test.rb +17 -0
  210. data/test/lib/vedeu/repositories/repositories/borders_test.rb +51 -0
  211. data/test/lib/vedeu/repositories/repositories/buffers_test.rb +52 -0
  212. data/test/lib/vedeu/repositories/repositories/colours_test.rb +16 -0
  213. data/test/lib/vedeu/repositories/repositories/cursors_test.rb +39 -0
  214. data/test/lib/vedeu/repositories/repositories/events_repository_test.rb +17 -0
  215. data/test/lib/vedeu/repositories/repositories/foreground_colours_test.rb +17 -0
  216. data/test/lib/vedeu/repositories/repositories/geometries_test.rb +42 -0
  217. data/test/lib/vedeu/repositories/repositories/groups_test.rb +17 -0
  218. data/test/lib/vedeu/repositories/repositories/interfaces_repositories_test.rb +17 -0
  219. data/test/lib/vedeu/repositories/repositories/keymaps_test.rb +17 -0
  220. data/test/lib/vedeu/repositories/repositories/menus_test.rb +17 -0
  221. data/test/lib/vedeu/repositories/repository_test.rb +16 -36
  222. data/test/lib/vedeu/storage/associative_store_test.rb +69 -0
  223. data/test/lib/vedeu/storage/conveyor_store_test.rb +135 -0
  224. data/test/lib/vedeu/storage/fifo_store_test.rb +47 -0
  225. data/test/lib/vedeu/storage/store_test.rb +123 -0
  226. data/test/lib/vedeu/support/common_test.rb +0 -9
  227. data/test/lib/vedeu/support/terminal_test.rb +78 -55
  228. data/test/lib/vedeu/support/visibility_test.rb +80 -0
  229. data/test/test_helper.rb +13 -11
  230. data/vedeu.gemspec +4 -3
  231. metadata +92 -32
  232. data/lib/vedeu/cursor/toggle.rb +0 -55
  233. data/lib/vedeu/exceptions.rb +0 -37
  234. data/lib/vedeu/geometry/centre.rb +0 -85
  235. data/lib/vedeu/geometry/content.rb +0 -70
  236. data/lib/vedeu/geometry/limit.rb +0 -58
  237. data/lib/vedeu/output/compositor.rb +0 -62
  238. data/lib/vedeu/repositories/collections.rb +0 -41
  239. data/lib/vedeu/support/coercions.rb +0 -60
  240. data/lib/vedeu/support/sentence.rb +0 -91
  241. data/lib/vedeu/support/visible.rb +0 -90
  242. data/test/lib/vedeu/cursor/toggle_test.rb +0 -63
  243. data/test/lib/vedeu/geometry/centre_test.rb +0 -58
  244. data/test/lib/vedeu/geometry/content_test.rb +0 -98
  245. data/test/lib/vedeu/geometry/limit_test.rb +0 -30
  246. data/test/lib/vedeu/output/compositor_test.rb +0 -48
  247. data/test/lib/vedeu/repositories/all_test.rb +0 -135
  248. data/test/lib/vedeu/repositories/collections_test.rb +0 -71
  249. data/test/lib/vedeu/support/coercions_test.rb +0 -84
  250. data/test/lib/vedeu/support/sentence_test.rb +0 -56
  251. data/test/lib/vedeu/support/visible_test.rb +0 -161
data/examples/drb_app.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- lib_dir = "/Users/gavinlaking/Source/vedeu/lib/vedeu/distributed/../../../lib"
3
+ lib_dir = '/Users/gavinlaking/Source/vedeu/lib/vedeu/distributed/../../../lib'
4
4
  $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
5
5
 
6
6
  require 'vedeu'
@@ -8,108 +8,107 @@ require 'vedeu'
8
8
  # An example application to demonstrate the DRb server.
9
9
  #
10
10
  class VedeuTestApplication
11
- # include Vedeu
12
-
13
- Vedeu.configure do
14
- colour_mode 16_777_216
15
- log '/tmp/vedeu_test_helper.log'
16
- debug!
17
- drb!
18
- drb_host 'localhost'
19
- drb_port 21420
20
- drb_width 80
21
- drb_height 25
22
-
23
- # cooked!
24
- # raw!
25
-
26
- # run_once!
27
-
28
- # interactive!
29
- # standalone!
30
-
31
- # trace!
32
-
33
- # System keys can be redefined
34
- # exit_key 'q'
35
- # focus_next_key :tab
36
- # focus_prev_key :shift_tab
37
- # mode_switch_key :escape
38
-
39
- # Not used yet
40
- # stdin File.open("/dev/tty", "r")
41
- # stdout File.open("/dev/tty", "w")
42
- # stderr File.open("/tmp/vedeu_error.log", "w+")
43
- end
44
11
 
45
- Vedeu.bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
46
-
47
- Vedeu.border 'test_interface' do
48
- # Define colour and style of border
49
- colour foreground: '#ffff00', background: '#0000ff'
50
- style 'normal'
51
-
52
- # Define visibility of border
53
- show_bottom!
54
- show_left!
55
- show_right!
56
- show_top!
57
-
58
- # Define characters used to draw border
59
- bottom_right '+'
60
- bottom_left '+'
61
- horizontal '-'
62
- top_right '+'
63
- top_left '+'
64
- vertical '|'
65
- end
12
+ Vedeu.configure do
13
+ log '/tmp/vedeu_test_helper.log'
14
+ debug!
15
+ drb!
16
+ drb_host 'localhost'
17
+ drb_port 21_420
18
+ drb_width 80
19
+ drb_height 25
66
20
 
67
- Vedeu.geometry 'test_interface' do
68
- # centred!
69
- height 6
70
- width 26
71
- x 4
72
- y 4
73
- end
21
+ # cooked!
22
+ # raw!
74
23
 
75
- Vedeu.interface 'test_interface' do
76
- colour foreground: '#ff0000', background: '#000000'
77
- cursor!
78
- end
24
+ # run_once!
79
25
 
80
- Vedeu.keymap 'test_interface' do
81
- key(:up, 'k') { Vedeu.trigger(:_cursor_up_) }
82
- key(:right, 'l') { Vedeu.trigger(:_cursor_right_) }
83
- key(:down, 'j') { Vedeu.trigger(:_cursor_down_) }
84
- key(:left, 'h') { Vedeu.trigger(:_cursor_left_) }
85
- end
26
+ # interactive!
27
+ # standalone!
86
28
 
87
- Vedeu.menu 'test_interface' do
88
- # ...
89
- end
29
+ # trace!
30
+
31
+ # System keys can be redefined
32
+ # exit_key 'q'
33
+ # focus_next_key :tab
34
+ # focus_prev_key :shift_tab
35
+ # mode_switch_key :escape
36
+
37
+ # Not used yet
38
+ # stdin File.open("/dev/tty", "r")
39
+ # stdout File.open("/dev/tty", "w")
40
+ # stderr File.open("/tmp/vedeu_error.log", "w+")
41
+ end
42
+
43
+ Vedeu.bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
44
+
45
+ Vedeu.border 'test_interface' do
46
+ # Define colour and style of border
47
+ colour foreground: '#ffff00', background: '#0000ff'
48
+ style 'normal'
49
+
50
+ # Define visibility of border
51
+ show_bottom!
52
+ show_left!
53
+ show_right!
54
+ show_top!
55
+
56
+ # Define characters used to draw border
57
+ bottom_right '+'
58
+ bottom_left '+'
59
+ horizontal '-'
60
+ top_right '+'
61
+ top_left '+'
62
+ vertical '|'
63
+ end
90
64
 
91
- Vedeu.renders do
92
- view 'test_interface' do
93
- lines do
94
- line 'a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1'
95
- line 'a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z2'
96
- line 'a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3'
97
- line 'a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4'
98
- line 'a5b5c5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u5v5w5x5y5z5'
99
- line 'a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6w6x6y6z6'
100
- line 'a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q7r7s7t7u7v7w7x7y7z7'
101
- line 'a8b8c8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8'
65
+ Vedeu.geometry 'test_interface' do
66
+ # centred!
67
+ height 6
68
+ width 26
69
+ x 4
70
+ y 4
71
+ end
72
+
73
+ Vedeu.interface 'test_interface' do
74
+ colour foreground: '#ff0000', background: '#000000'
75
+ cursor!
76
+ end
77
+
78
+ Vedeu.keymap 'test_interface' do
79
+ key(:up, 'k') { Vedeu.trigger(:_cursor_up_) }
80
+ key(:right, 'l') { Vedeu.trigger(:_cursor_right_) }
81
+ key(:down, 'j') { Vedeu.trigger(:_cursor_down_) }
82
+ key(:left, 'h') { Vedeu.trigger(:_cursor_left_) }
83
+ end
84
+
85
+ Vedeu.menu 'test_interface' do
86
+ # ...
87
+ end
88
+
89
+ Vedeu.renders do
90
+ view 'test_interface' do
91
+ lines do
92
+ line 'a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1'
93
+ line 'a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z2'
94
+ line 'a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3'
95
+ line 'a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4'
96
+ line 'a5b5c5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u5v5w5x5y5z5'
97
+ line 'a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6w6x6y6z6'
98
+ line 'a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q7r7s7t7u7v7w7x7y7z7'
99
+ line 'a8b8c8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8'
100
+ end
102
101
  end
103
102
  end
104
- end
105
103
 
106
- def self.start(argv = ARGV,
107
- stdin = STDIN,
104
+ def self.start(argv = ARGV,
105
+ stdin = STDIN,
108
106
  stdout = STDOUT,
109
107
  stderr = STDERR,
110
108
  kernel = Kernel)
111
109
  Vedeu::Launcher.execute!(argv, stdin, stdout, stderr, kernel)
112
110
  end
111
+
113
112
  end
114
113
 
115
114
  VedeuTestApplication.start(ARGV)
@@ -14,102 +14,100 @@ require 'vedeu'
14
14
  #
15
15
  # Use 'space' to change focus, 'q' to exit.
16
16
  class VedeuFocusApp
17
- include Vedeu
18
17
 
19
- configure do
20
- colour_mode 16_777_216
18
+ Vedeu.configure do
21
19
  debug!
22
20
  log '/tmp/vedeu_focus_app.log'
23
21
  end
24
22
 
25
- bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
23
+ Vedeu.bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
26
24
 
27
- update = Proc.new do
25
+ update = proc do
28
26
  Vedeu.focus_next
29
27
 
30
28
  Vedeu.renders { view('status') { lines { line(Vedeu.focus) } } }
31
29
  end
32
30
 
33
- interface 'aluminium' do
31
+ Vedeu.interface 'aluminium' do
34
32
  colour foreground: '#ffffff', background: '#330000'
35
33
  cursor true
36
34
  geometry do
37
- height 2
38
- width 2
35
+ height 3
36
+ width 10
39
37
  x 3
40
38
  y 3
41
39
  end
42
40
  keymap { key(' ') { update.call } }
43
41
  end
44
42
 
45
- interface 'boron' do
46
- colour foreground: '#ffffff', background: '#003300'
47
- cursor true
43
+ Vedeu.interface 'boron' do
44
+ colour foreground: '#ffffff', background: '#003300'
45
+ cursor true
48
46
  geometry do
49
- height 2
50
- width 2
51
- x 6
47
+ height 3
48
+ width 10
49
+ x 15
52
50
  y 3
53
51
  end
54
52
  keymap { key(' ') { update.call } }
55
53
  end
56
54
 
57
- interface 'copper' do
55
+ Vedeu.interface 'copper' do
58
56
  colour foreground: '#ffffff', background: '#000033'
59
57
  cursor true
60
58
  focus!
61
59
  geometry do
62
- height 2
63
- width 2
60
+ height 3
61
+ width 10
64
62
  x 3
65
- y 6
63
+ y 8
66
64
  end
67
65
  keymap { key(' ') { update.call } }
68
66
  end
69
67
 
70
- interface 'dubnium' do
68
+ Vedeu.interface 'dubnium' do
71
69
  colour foreground: '#ffffff', background: '#333300'
72
70
  cursor true
73
71
  geometry do
74
- height 2
75
- width 2
76
- x 6
77
- y 6
72
+ height 3
73
+ width 10
74
+ x 15
75
+ y 8
78
76
  end
79
77
  keymap { key(' ') { update.call } }
80
78
  end
81
79
 
82
- interface 'status' do
80
+ Vedeu.interface 'status' do
83
81
  colour foreground: '#ffffff', background: '#000000'
84
82
  cursor false
85
83
  geometry do
86
- height 2
84
+ height 3
87
85
  width 10
88
- x 9
89
- y 3
86
+ x 3
87
+ y 13
90
88
  end
91
89
  keymap { key(' ') { update.call } }
92
90
  end
93
91
 
94
- renders do
92
+ Vedeu.renders do
95
93
  view('aluminium') do
96
94
  lines do
97
- line 'Al'
95
+ line 'Aluminium'
98
96
  end
99
97
  end
100
98
  view('boron') do
101
99
  lines do
102
- line 'B'
100
+ line 'Boron'
103
101
  end
104
102
  end
105
103
  view('copper') do
106
104
  lines do
107
- line 'Cu'
105
+ line 'Copper'
108
106
  end
109
107
  end
110
108
  view('dubnium') do
111
109
  lines do
112
- line 'Db'
110
+ line 'Dubnium'
113
111
  end
114
112
  end
115
113
  view('status') do
@@ -122,6 +120,7 @@ class VedeuFocusApp
122
120
  def self.start(argv = ARGV)
123
121
  Vedeu::Launcher.execute!(argv)
124
122
  end
123
+
125
124
  end
126
125
 
127
126
  VedeuFocusApp.start(ARGV)
@@ -8,10 +8,10 @@ require 'vedeu'
8
8
  # An example application to demonstrate geometry.
9
9
  #
10
10
  class VedeuGeometryApp
11
+
11
12
  include Vedeu
12
13
 
13
14
  configure do
14
- colour_mode 16_777_216
15
15
  debug!
16
16
  log '/tmp/vedeu_geometry_app.log'
17
17
  end
@@ -135,6 +135,7 @@ class VedeuGeometryApp
135
135
  def self.start(argv = ARGV)
136
136
  Vedeu::Launcher.execute!(argv)
137
137
  end
138
+
138
139
  end
139
140
 
140
141
  VedeuGeometryApp.start(ARGV)
@@ -11,10 +11,10 @@ require 'vedeu'
11
11
  # An example application to demonstrate 'Hello World'.
12
12
  #
13
13
  class HelloWorldApp
14
+
14
15
  include Vedeu
15
16
 
16
17
  configure do
17
- colour_mode 16_777_216
18
18
  debug!
19
19
  log '/tmp/vedeu_hello_world.log'
20
20
  end
@@ -44,6 +44,7 @@ class HelloWorldApp
44
44
  def self.start(argv = ARGV)
45
45
  Vedeu::Launcher.execute!(argv)
46
46
  end
47
+
47
48
  end
48
49
 
49
50
  HelloWorldApp.start(ARGV)
@@ -8,10 +8,10 @@ require 'vedeu'
8
8
  # An example application to demonstrate interface lines.
9
9
  #
10
10
  class VedeuLinesApp
11
+
11
12
  include Vedeu
12
13
 
13
14
  configure do
14
- colour_mode 16_777_216
15
15
  debug!
16
16
  log '/tmp/vedeu_lines_app.log'
17
17
  end
@@ -68,6 +68,7 @@ class VedeuLinesApp
68
68
  def self.start(argv = ARGV)
69
69
  Vedeu::Launcher.execute!(argv)
70
70
  end
71
+
71
72
  end
72
73
 
73
74
  VedeuLinesApp.start(ARGV)
@@ -0,0 +1,126 @@
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
+ require 'vedeu'
7
+
8
+ # An example application to demonstrate colours.
9
+ #
10
+ class VedeuMaterialColoursApp
11
+
12
+ include Vedeu
13
+
14
+ configure do
15
+ # debug!
16
+ log '/tmp/vedeu_material_colours_app.log'
17
+ renderers Vedeu::FileRenderer
18
+ end
19
+
20
+ # bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
21
+
22
+ interface 'main_interface' do
23
+ border 'main_interface' do
24
+ colour foreground: '#ffffff', background: '#000000'
25
+ title 'Rainbow!'
26
+ end
27
+ colour foreground: '#ffffff', background: '#000000'
28
+ cursor!
29
+ geometry 'main_interface' do
30
+ x 5
31
+ xn 25
32
+ y 3
33
+ yn 13
34
+ end
35
+ end
36
+
37
+ interface 'other_interface' do
38
+ border 'other_interface' do
39
+ colour foreground: '#ffffff', background: '#000000'
40
+ title 'Wow!'
41
+ end
42
+ colour foreground: '#ffffff', background: '#000000'
43
+ cursor!
44
+ geometry 'other_interface' do
45
+ x 27
46
+ xn 47
47
+ y 3
48
+ yn 13
49
+ end
50
+ end
51
+
52
+ keymap('_global_') do
53
+ key(:up, 'k') { Vedeu.trigger(:_cursor_up_) }
54
+ key(:right, 'l') { Vedeu.trigger(:_cursor_right_) }
55
+ key(:down, 'j') { Vedeu.trigger(:_cursor_down_) }
56
+ key(:left, 'h') { Vedeu.trigger(:_cursor_left_) }
57
+ key('t') do
58
+ Vedeu.trigger(:_toggle_interface_, 'main_interface')
59
+ Vedeu.trigger(:_toggle_interface_, 'other_interface')
60
+ end
61
+ key('1') { Vedeu.trigger(:_hide_interface_, 'main_interface') }
62
+ key('2') { Vedeu.trigger(:_show_interface_, 'main_interface') }
63
+ key('3') { Vedeu.trigger(:_hide_interface_, 'other_interface') }
64
+ key('4') { Vedeu.trigger(:_show_interface_, 'other_interface') }
65
+ end
66
+
67
+ renders do
68
+ view 'main_interface' do
69
+ line { centre 'Red', width: 20, background: '#f44336' }
70
+ line { centre 'Pink', width: 20, background: '#e91e63' }
71
+ line { centre 'Purple', width: 20, background: '#9c27b0' }
72
+ line { centre 'Deep Purple', width: 20, background: '#673ab7' }
73
+ line { centre 'Indigo', width: 20, background: '#3f51b5' }
74
+ line { centre 'Blue', width: 20, background: '#2196f3' }
75
+ line { centre 'Light Blue', width: 20, background: '#03a9f4' }
76
+ line { centre 'Cyan', width: 20, background: '#00bcd4' }
77
+ line { centre 'Teal', width: 20, background: '#009688' }
78
+ line { centre 'Green', width: 20, background: '#4caf50' }
79
+ line { centre 'Light Green', width: 20, background: '#8bc34a' }
80
+ line { centre 'Lime', width: 20, background: '#cddc39' }
81
+ line { centre 'Yellow', width: 20, background: '#ffeb3b' }
82
+ line { centre 'Amber', width: 20, background: '#ffc107' }
83
+ line { centre 'Orange', width: 20, background: '#ff9800' }
84
+ line { centre 'Deep Orange', width: 20, background: '#ff5722' }
85
+ line { centre 'Brown', width: 20, background: '#795548' }
86
+ line { centre 'Grey', width: 20, background: '#9e9e9e' }
87
+ line { centre 'Blue Grey', width: 20, background: '#607d8b' }
88
+ end
89
+
90
+ view 'other_interface' do
91
+ line { centre 'Blue Grey', width: 20, background: '#607d8b' }
92
+ line { centre 'Grey', width: 20, background: '#9e9e9e' }
93
+ line { centre 'Brown', width: 20, background: '#795548' }
94
+ line { centre 'Deep Orange', width: 20, background: '#ff5722' }
95
+ line { centre 'Orange', width: 20, background: '#ff9800' }
96
+ line { centre 'Amber', width: 20, background: '#ffc107' }
97
+ line { centre 'Yellow', width: 20, background: '#ffeb3b' }
98
+ line { centre 'Lime', width: 20, background: '#cddc39' }
99
+ line { centre 'Light Green', width: 20, background: '#8bc34a' }
100
+ line { centre 'Green', width: 20, background: '#4caf50' }
101
+ line { centre 'Teal', width: 20, background: '#009688' }
102
+ line { centre 'Cyan', width: 20, background: '#00bcd4' }
103
+ line { centre 'Light Blue', width: 20, background: '#03a9f4' }
104
+ line { centre 'Blue', width: 20, background: '#2196f3' }
105
+ line { centre 'Indigo', width: 20, background: '#3f51b5' }
106
+ line { centre 'Deep Purple', width: 20, background: '#673ab7' }
107
+ line { centre 'Purple', width: 20, background: '#9c27b0' }
108
+ line { centre 'Pink', width: 20, background: '#e91e63' }
109
+ line { centre 'Red', width: 20, background: '#f44336' }
110
+ end
111
+ end
112
+
113
+ focus_by_name 'main_interface'
114
+
115
+ def self.start(argv = ARGV)
116
+ Vedeu::Launcher.execute!(argv)
117
+ end
118
+
119
+ end
120
+
121
+ VedeuMaterialColoursApp.start(ARGV)
122
+
123
+
124
+
125
+
126
+
@@ -5,11 +5,14 @@ $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
5
5
 
6
6
  require 'vedeu'
7
7
 
8
+ # A simple example application to test the input of commands. This will test
9
+ # the functionality of 'cooked' mode.
10
+ #
8
11
  class VedeuTypedCommands
12
+
9
13
  include Vedeu
10
14
 
11
15
  configure do
12
- colour_mode 16_777_216
13
16
  debug!
14
17
  log '/tmp/vedeu_typed_commands_app.log'
15
18
  end
@@ -83,6 +86,7 @@ class VedeuTypedCommands
83
86
  def self.start(argv = ARGV)
84
87
  Vedeu::Launcher.execute!(argv)
85
88
  end
89
+
86
90
  end
87
91
 
88
92
  VedeuTypedCommands.start(ARGV)
@@ -8,10 +8,10 @@ require 'vedeu'
8
8
  # An example application to demonstrate templates.
9
9
  #
10
10
  class VedeuViewTemplateApp
11
+
11
12
  include Vedeu
12
13
 
13
14
  configure do
14
- colour_mode 16_777_216
15
15
  debug!
16
16
  log '/tmp/vedeu_view_templates_app.log'
17
17
  end
@@ -72,13 +72,16 @@ class VedeuViewTemplateApp
72
72
 
73
73
  renders do
74
74
  template_for('default', (File.dirname(__FILE__) + '/template.erb'), nil)
75
- template_for('prune', (File.dirname(__FILE__) + '/template.erb'), nil, { mode: :prune, width: 22 })
76
- template_for('wrap', (File.dirname(__FILE__) + '/template.erb'), nil, { mode: :wrap, width: 25 })
75
+ template_for('prune', (File.dirname(__FILE__) + '/template.erb'), nil,
76
+ mode: :prune, width: 22)
77
+ template_for('wrap', (File.dirname(__FILE__) + '/template.erb'), nil,
78
+ mode: :wrap, width: 25)
77
79
  end
78
80
 
79
81
  def self.start(argv = ARGV)
80
82
  Vedeu::Launcher.execute!(argv)
81
83
  end
84
+
82
85
  end
83
86
 
84
87
  VedeuViewTemplateApp.start(ARGV)
data/lib/vedeu/all.rb CHANGED
@@ -3,9 +3,9 @@
3
3
 
4
4
  require 'vedeu/debug'
5
5
  require 'vedeu/traps'
6
- require 'vedeu/exceptions'
7
6
 
8
7
  require 'vedeu/geometry/all'
8
+ require 'vedeu/storage/all'
9
9
  require 'vedeu/repositories/all'
10
10
 
11
11
  require 'vedeu/api'
data/lib/vedeu/api.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'vedeu/support/common'
2
2
  require 'vedeu/support/terminal'
3
+ require 'vedeu/output/renderers/all'
3
4
  require 'vedeu/events/all'
4
5
  require 'vedeu/models/all'
5
6
  require 'vedeu/input/all'
@@ -95,7 +96,7 @@ module Vedeu
95
96
  # @!method unbind
96
97
  # @see Vedeu::Event.unbind
97
98
  def_delegators Vedeu::Event, :bind,
98
- :unbind
99
+ :unbind
99
100
 
100
101
  # @!method trigger
101
102
  # @see Vedeu::Trigger.trigger
@@ -106,7 +107,7 @@ module Vedeu
106
107
  # @!method configuration
107
108
  # @see Vedeu::Configuration.configuration
108
109
  def_delegators Vedeu::Configuration, :configure,
109
- :configuration
110
+ :configuration
110
111
 
111
112
  # @!method border
112
113
  # @see Vedeu::DSL::Border.border
@@ -135,8 +136,8 @@ module Vedeu
135
136
  # @!method views
136
137
  # @see Vedeu::DSL::View.views
137
138
  def_delegators Vedeu::DSL::View, :interface,
138
- :renders,
139
- :views
139
+ :renders,
140
+ :views
140
141
 
141
142
  # @!method focus
142
143
  # @see Vedeu::Focus#focus
@@ -149,10 +150,10 @@ module Vedeu
149
150
  # @!method focus_previous
150
151
  # @see Vedeu::Focus#focus_previous
151
152
  def_delegators Vedeu::Focus, :focus,
152
- :focus_by_name,
153
- :focussed?,
154
- :focus_next,
155
- :focus_previous
153
+ :focus_by_name,
154
+ :focussed?,
155
+ :focus_next,
156
+ :focus_previous
156
157
 
157
158
  # @!method log
158
159
  # @see Vedeu::Log.log
@@ -169,8 +170,15 @@ module Vedeu
169
170
  # @!method resize
170
171
  # @see Vedeu::Terminal#resize
171
172
  def_delegators Vedeu::Terminal, :height,
172
- :width,
173
- :resize
173
+ :width,
174
+ :resize
175
+
176
+ # @!method renderer
177
+ # @see Vedeu::Renderers#renderer
178
+ # @!method renderers
179
+ # @see Vedeu::Renderers#renderers
180
+ def_delegators Vedeu::Renderers, :renderer,
181
+ :renderers
174
182
 
175
183
  end # API
176
184
 
@@ -116,7 +116,6 @@ module Vedeu
116
116
  Vedeu.trigger(:_drb_restart_)
117
117
 
118
118
  Vedeu::Application.restart(configuration)
119
-
120
119
  end
121
120
 
122
121
  # :nocov: