vedeu 0.0.25 → 0.0.26

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -9
  3. data/Rakefile +0 -10
  4. data/bin/composition +1 -1
  5. data/examples/single_interface_app.rb +7 -4
  6. data/lib/vedeu.rb +19 -48
  7. data/lib/vedeu/application.rb +8 -7
  8. data/lib/vedeu/configuration.rb +4 -4
  9. data/lib/vedeu/input/input.rb +3 -0
  10. data/lib/vedeu/launcher.rb +3 -0
  11. data/lib/vedeu/models/background.rb +13 -0
  12. data/lib/vedeu/models/coercions.rb +21 -0
  13. data/lib/vedeu/models/colour.rb +22 -0
  14. data/lib/vedeu/{repository → models}/command.rb +2 -0
  15. data/lib/vedeu/models/composition.rb +30 -0
  16. data/lib/vedeu/models/foreground.rb +13 -0
  17. data/lib/vedeu/models/interface.rb +62 -0
  18. data/lib/vedeu/models/interface_collection.rb +24 -0
  19. data/lib/vedeu/models/line.rb +22 -0
  20. data/lib/vedeu/models/line_collection.rb +27 -0
  21. data/lib/vedeu/models/presentation.rb +13 -0
  22. data/lib/vedeu/models/stream.rb +21 -0
  23. data/lib/vedeu/models/stream_collection.rb +27 -0
  24. data/lib/vedeu/models/style_collection.rb +23 -0
  25. data/lib/vedeu/output/interface_renderer.rb +62 -0
  26. data/lib/vedeu/output/output.rb +6 -5
  27. data/lib/vedeu/process/process.rb +15 -31
  28. data/lib/vedeu/repository/command_repository.rb +13 -14
  29. data/lib/vedeu/repository/interface_repository.rb +12 -13
  30. data/lib/vedeu/repository/repository.rb +2 -0
  31. data/lib/vedeu/{output → support}/cursor.rb +2 -0
  32. data/lib/vedeu/support/esc.rb +112 -0
  33. data/lib/vedeu/support/events.rb +21 -0
  34. data/lib/vedeu/support/geometry.rb +66 -0
  35. data/lib/vedeu/support/parser.rb +27 -0
  36. data/lib/vedeu/support/terminal.rb +31 -134
  37. data/lib/vedeu/{output → support}/translator.rb +12 -8
  38. data/lib/vedeu/{output → support}/wordwrap.rb +2 -4
  39. data/lib/vedeu/version.rb +1 -1
  40. data/test/lib/vedeu/application_test.rb +7 -2
  41. data/test/lib/vedeu/configuration_test.rb +13 -8
  42. data/test/lib/vedeu/input/input_test.rb +2 -1
  43. data/test/lib/vedeu/launcher_test.rb +7 -2
  44. data/test/lib/vedeu/models/background_test.rb +35 -0
  45. data/test/lib/vedeu/models/colour_test.rb +71 -0
  46. data/test/lib/vedeu/models/command_test.rb +109 -0
  47. data/test/lib/vedeu/models/composition_test.rb +187 -0
  48. data/test/lib/vedeu/models/foreground_test.rb +35 -0
  49. data/test/lib/vedeu/models/interface_collection_test.rb +57 -0
  50. data/test/lib/vedeu/models/interface_test.rb +220 -0
  51. data/test/lib/vedeu/models/line_collection_test.rb +69 -0
  52. data/test/lib/vedeu/models/line_test.rb +76 -0
  53. data/test/lib/vedeu/models/presentation_test.rb +8 -0
  54. data/test/lib/vedeu/models/stream_collection_test.rb +57 -0
  55. data/test/lib/vedeu/models/stream_test.rb +76 -0
  56. data/test/lib/vedeu/models/style_collection_test.rb +22 -0
  57. data/test/lib/vedeu/output/interface_renderer_test.rb +12 -0
  58. data/test/lib/vedeu/output/output_test.rb +15 -30
  59. data/test/lib/vedeu/process/process_test.rb +22 -44
  60. data/test/lib/vedeu/repository/command_repository_test.rb +22 -16
  61. data/test/lib/vedeu/repository/interface_repository_test.rb +62 -14
  62. data/test/lib/vedeu/repository/repository_test.rb +1 -0
  63. data/test/lib/vedeu/repository/storage_test.rb +13 -6
  64. data/test/lib/vedeu/{output → support}/cursor_test.rb +1 -0
  65. data/test/lib/vedeu/support/esc_test.rb +348 -0
  66. data/test/lib/vedeu/support/events_test.rb +37 -0
  67. data/test/lib/vedeu/support/exit_test.rb +1 -0
  68. data/test/lib/vedeu/support/geometry_test.rb +131 -0
  69. data/test/lib/vedeu/support/parser_test.rb +56 -0
  70. data/test/lib/vedeu/support/queue_test.rb +1 -0
  71. data/test/lib/vedeu/support/terminal_test.rb +1 -119
  72. data/test/lib/vedeu/{output → support}/translator_test.rb +17 -12
  73. data/test/lib/vedeu/{output → support}/wordwrap_test.rb +1 -0
  74. data/test/lib/vedeu/version_test.rb +1 -0
  75. data/test/lib/vedeu_test.rb +1 -0
  76. data/{lib/vedeu/repository → test/support}/dummy_command.rb +0 -0
  77. data/{lib/vedeu/repository → test/support}/dummy_interface.rb +0 -0
  78. data/test/support/json/int1_lin1_str1.json +10 -0
  79. data/test/support/json/int1_lin1_str3.json +18 -0
  80. data/test/support/json/int1_lin2_str1.json +17 -0
  81. data/test/support/json/int1_lin2_str3.json +33 -0
  82. data/test/support/json/int1_lin2_str3_styles.json +43 -0
  83. data/test/support/json/int2_lin1_str1.json +20 -0
  84. data/test/support/json/int2_lin1_str3.json +36 -0
  85. data/test/support/json/int2_lin2_str1.json +34 -0
  86. data/test/support/json/int2_lin2_str3.json +66 -0
  87. data/test/support/json/int2_lin2_str3_styles.json +158 -0
  88. data/test/support/output_1.json +9 -0
  89. data/test/support/output_1.rb +14 -0
  90. data/test/support/output_2.json +1 -0
  91. data/test/support/output_2.rb +19 -0
  92. data/test/test_helper.rb +0 -2
  93. data/vedeu.gemspec +0 -3
  94. metadata +98 -150
  95. data/config/cucumber.yml +0 -8
  96. data/documentation/composition.ebnf +0 -7
  97. data/documentation/diagram/ColourDirective.png +0 -0
  98. data/documentation/diagram/Directive.png +0 -0
  99. data/documentation/diagram/Interface.png +0 -0
  100. data/documentation/diagram/Output.png +0 -0
  101. data/documentation/diagram/PositionDirective.png +0 -0
  102. data/documentation/diagram/Stream.png +0 -0
  103. data/documentation/diagram/StyleDirective.png +0 -0
  104. data/documentation/diagram/rr-1.35.837.png +0 -0
  105. data/documentation/index.html +0 -325
  106. data/features/getting_started.feature +0 -10
  107. data/features/step_definitions/vedeu_steps.rb +0 -11
  108. data/features/support/env.rb +0 -12
  109. data/lib/vedeu/output/background.rb +0 -27
  110. data/lib/vedeu/output/base.rb +0 -57
  111. data/lib/vedeu/output/buffer/composition.rb +0 -24
  112. data/lib/vedeu/output/buffer/formatting.rb +0 -25
  113. data/lib/vedeu/output/buffer/interface.rb +0 -14
  114. data/lib/vedeu/output/buffer/line.rb +0 -14
  115. data/lib/vedeu/output/buffer/stream.rb +0 -14
  116. data/lib/vedeu/output/buffer/style.rb +0 -11
  117. data/lib/vedeu/output/colour.rb +0 -39
  118. data/lib/vedeu/output/compositor.rb +0 -72
  119. data/lib/vedeu/output/directive.rb +0 -63
  120. data/lib/vedeu/output/esc.rb +0 -61
  121. data/lib/vedeu/output/foreground.rb +0 -27
  122. data/lib/vedeu/output/geometry.rb +0 -71
  123. data/lib/vedeu/output/layer.rb +0 -9
  124. data/lib/vedeu/output/menu.rb +0 -26
  125. data/lib/vedeu/output/position.rb +0 -35
  126. data/lib/vedeu/output/style.rb +0 -38
  127. data/lib/vedeu/repository/interface.rb +0 -62
  128. data/lib/vedeu/support/json_parser.rb +0 -25
  129. data/lib/vedeu/support/options.rb +0 -4
  130. data/test/lib/vedeu/output/background_test.rb +0 -67
  131. data/test/lib/vedeu/output/base_test.rb +0 -8
  132. data/test/lib/vedeu/output/buffer/composition_test.rb +0 -57
  133. data/test/lib/vedeu/output/buffer/formatting_test.rb +0 -9
  134. data/test/lib/vedeu/output/buffer/interface_test.rb +0 -38
  135. data/test/lib/vedeu/output/buffer/line_test.rb +0 -64
  136. data/test/lib/vedeu/output/buffer/stream_test.rb +0 -61
  137. data/test/lib/vedeu/output/buffer/style_test.rb +0 -8
  138. data/test/lib/vedeu/output/colour_test.rb +0 -104
  139. data/test/lib/vedeu/output/compositor_test.rb +0 -247
  140. data/test/lib/vedeu/output/directive_test.rb +0 -82
  141. data/test/lib/vedeu/output/esc_test.rb +0 -175
  142. data/test/lib/vedeu/output/foreground_test.rb +0 -67
  143. data/test/lib/vedeu/output/geometry_test.rb +0 -190
  144. data/test/lib/vedeu/output/layer_test.rb +0 -35
  145. data/test/lib/vedeu/output/menu_test.rb +0 -13
  146. data/test/lib/vedeu/output/position_test.rb +0 -48
  147. data/test/lib/vedeu/output/style_test.rb +0 -132
  148. data/test/lib/vedeu/repository/command_test.rb +0 -73
  149. data/test/lib/vedeu/repository/dummy_command_test.rb +0 -27
  150. data/test/lib/vedeu/repository/dummy_interface_test.rb +0 -7
  151. data/test/lib/vedeu/repository/interface_test.rb +0 -79
  152. data/test/lib/vedeu/support/json_parser_test.rb +0 -45
  153. data/test/support/composition.json +0 -47
  154. data/test/support/composition.rb +0 -5
  155. data/test/support/composition.xml +0 -36
  156. data/test/support/multi_interface.json +0 -34
  157. data/test/support/single_interface.json +0 -19
@@ -1,4 +1,5 @@
1
1
  require_relative '../test_helper'
2
+ require_relative '../../lib/vedeu'
2
3
 
3
4
  describe Vedeu do
4
5
  let(:described_class) { Vedeu }
@@ -0,0 +1,10 @@
1
+ {
2
+ "interfaces": {
3
+ "name": "int1_lin1_str1",
4
+ "lines": {
5
+ "streams": {
6
+ "text": "Some text..."
7
+ }
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "interfaces": {
3
+ "name": "int1_lin1_str3",
4
+ "lines": {
5
+ "streams": [
6
+ {
7
+ "text": "Some text..."
8
+ },
9
+ {
10
+ "text": " "
11
+ },
12
+ {
13
+ "text": "more text..."
14
+ }
15
+ ]
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "interfaces": {
3
+ "name": "int1_lin2_str1",
4
+ "lines": [
5
+ {
6
+ "streams": {
7
+ "text": "Some text..."
8
+ }
9
+ },
10
+ {
11
+ "streams": {
12
+ "text": "Some text..."
13
+ }
14
+ }
15
+ ]
16
+ }
17
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "interfaces": {
3
+ "name": "int1_lin2_str3",
4
+ "lines": [
5
+ {
6
+ "streams": [
7
+ {
8
+ "text": "Some text..."
9
+ },
10
+ {
11
+ "text": " "
12
+ },
13
+ {
14
+ "text": "more text..."
15
+ }
16
+ ]
17
+ },
18
+ {
19
+ "streams": [
20
+ {
21
+ "text": "Some text..."
22
+ },
23
+ {
24
+ "text": " "
25
+ },
26
+ {
27
+ "text": "more text..."
28
+ }
29
+ ]
30
+ }
31
+ ]
32
+ }
33
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "interfaces": {
3
+ "name": "int1_lin2_str3_styles",
4
+ "lines": [
5
+ {
6
+ "streams": [
7
+ {
8
+ "text": "Some text...",
9
+ "colour": {
10
+ "foreground": "#000000",
11
+ "background": "#0000ff"
12
+ },
13
+ "style": [
14
+ "normal",
15
+ "underline"
16
+ ]
17
+ },
18
+ {
19
+ "text": " ",
20
+ "colour": {
21
+ "foreground": "#ffff00",
22
+ "background": "#00ff00"
23
+ },
24
+ "style": [
25
+ "normal"
26
+ ]
27
+ },
28
+ {
29
+ "text": "more text...",
30
+ "colour": {
31
+ "foreground": "#ffffff",
32
+ "background": "#ff00ff"
33
+ },
34
+ "style": [
35
+ "bold",
36
+ "reverse"
37
+ ]
38
+ }
39
+ ]
40
+ }
41
+ ]
42
+ }
43
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "interfaces": [
3
+ {
4
+ "name": "int2_lin1_str1_1",
5
+ "lines": {
6
+ "streams": {
7
+ "text": "Some text..."
8
+ }
9
+ }
10
+ },
11
+ {
12
+ "name": "int2_lin1_str1_2",
13
+ "lines": {
14
+ "streams": {
15
+ "text": "Some text..."
16
+ }
17
+ }
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "interfaces": [
3
+ {
4
+ "name": "int2_lin1_str3_1",
5
+ "lines": {
6
+ "streams": [
7
+ {
8
+ "text": "Some text..."
9
+ },
10
+ {
11
+ "text": " "
12
+ },
13
+ {
14
+ "text": "more text..."
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "name": "int2_lin1_str3_2",
21
+ "lines": {
22
+ "streams": [
23
+ {
24
+ "text": "Some text..."
25
+ },
26
+ {
27
+ "text": " "
28
+ },
29
+ {
30
+ "text": "more text..."
31
+ }
32
+ ]
33
+ }
34
+ }
35
+ ]
36
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "interfaces": [
3
+ {
4
+ "name": "int2_lin2_str1_1",
5
+ "lines": [
6
+ {
7
+ "streams": {
8
+ "text": "Some text..."
9
+ }
10
+ },
11
+ {
12
+ "streams": {
13
+ "text": "Some text..."
14
+ }
15
+ }
16
+ ]
17
+ },
18
+ {
19
+ "name": "int2_lin2_str1_1",
20
+ "lines": [
21
+ {
22
+ "streams": {
23
+ "text": "Some text..."
24
+ }
25
+ },
26
+ {
27
+ "streams": {
28
+ "text": "Some text..."
29
+ }
30
+ }
31
+ ]
32
+ }
33
+ ]
34
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "interfaces": [
3
+ {
4
+ "name": "int2_lin2_str3_1",
5
+ "lines": [
6
+ {
7
+ "streams": [
8
+ {
9
+ "text": "Some text..."
10
+ },
11
+ {
12
+ "text": " "
13
+ },
14
+ {
15
+ "text": "more text..."
16
+ }
17
+ ]
18
+ },
19
+ {
20
+ "streams": [
21
+ {
22
+ "text": "Some text..."
23
+ },
24
+ {
25
+ "text": " "
26
+ },
27
+ {
28
+ "text": "more text..."
29
+ }
30
+ ]
31
+ }
32
+ ]
33
+ },
34
+ {
35
+ "name": "int2_lin2_str3_2",
36
+ "lines": [
37
+ {
38
+ "streams": [
39
+ {
40
+ "text": "Some text..."
41
+ },
42
+ {
43
+ "text": " "
44
+ },
45
+ {
46
+ "text": "more text..."
47
+ }
48
+ ]
49
+ },
50
+ {
51
+ "streams": [
52
+ {
53
+ "text": "Some text..."
54
+ },
55
+ {
56
+ "text": " "
57
+ },
58
+ {
59
+ "text": "more text..."
60
+ }
61
+ ]
62
+ }
63
+ ]
64
+ }
65
+ ]
66
+ }
@@ -0,0 +1,158 @@
1
+ {
2
+ "interfaces": [
3
+ {
4
+ "name": "int2_lin2_str3_styles_1",
5
+ "lines": [
6
+ {
7
+ "streams": [
8
+ {
9
+ "text": "Some text...",
10
+ "colour": {
11
+ "foreground": "#000000",
12
+ "background": "#0000ff"
13
+ },
14
+ "style": [
15
+ "normal",
16
+ "underline"
17
+ ]
18
+ },
19
+ {
20
+ "text": " ",
21
+ "colour": {
22
+ "foreground": "#ffff00",
23
+ "background": "#00ff00"
24
+ },
25
+ "style": [
26
+ "normal"
27
+ ]
28
+ },
29
+ {
30
+ "text": "more text...",
31
+ "colour": {
32
+ "foreground": "#ffffff",
33
+ "background": "#ff00ff"
34
+ },
35
+ "style": [
36
+ "bold",
37
+ "reverse"
38
+ ]
39
+ }
40
+ ]
41
+ },
42
+ {
43
+ "streams": [
44
+ {
45
+ "text": "Some text...",
46
+ "colour": {
47
+ "foreground": "#000000",
48
+ "background": "#0000ff"
49
+ },
50
+ "style": [
51
+ "normal",
52
+ "underline"
53
+ ]
54
+ },
55
+ {
56
+ "text": " ",
57
+ "colour": {
58
+ "foreground": "#ffff00",
59
+ "background": "#00ff00"
60
+ },
61
+ "style": [
62
+ "normal"
63
+ ]
64
+ },
65
+ {
66
+ "text": "more text...",
67
+ "colour": {
68
+ "foreground": "#ffffff",
69
+ "background": "#ff00ff"
70
+ },
71
+ "style": [
72
+ "bold",
73
+ "reverse"
74
+ ]
75
+ }
76
+ ]
77
+ }
78
+ ]
79
+ },
80
+ {
81
+ "name": "int2_lin2_str3_styles_2",
82
+ "lines": [
83
+ {
84
+ "streams": [
85
+ {
86
+ "text": "Some text...",
87
+ "colour": {
88
+ "foreground": "#000000",
89
+ "background": "#0000ff"
90
+ },
91
+ "style": [
92
+ "normal",
93
+ "underline"
94
+ ]
95
+ },
96
+ {
97
+ "text": " ",
98
+ "colour": {
99
+ "foreground": "#ffff00",
100
+ "background": "#00ff00"
101
+ },
102
+ "style": [
103
+ "normal"
104
+ ]
105
+ },
106
+ {
107
+ "text": "more text...",
108
+ "colour": {
109
+ "foreground": "#ffffff",
110
+ "background": "#ff00ff"
111
+ },
112
+ "style": [
113
+ "bold",
114
+ "reverse"
115
+ ]
116
+ }
117
+ ]
118
+ },
119
+ {
120
+ "streams": [
121
+ {
122
+ "text": "Some text...",
123
+ "colour": {
124
+ "foreground": "#000000",
125
+ "background": "#0000ff"
126
+ },
127
+ "style": [
128
+ "normal",
129
+ "underline"
130
+ ]
131
+ },
132
+ {
133
+ "text": " ",
134
+ "colour": {
135
+ "foreground": "#ffff00",
136
+ "background": "#00ff00"
137
+ },
138
+ "style": [
139
+ "normal"
140
+ ]
141
+ },
142
+ {
143
+ "text": "more text...",
144
+ "colour": {
145
+ "foreground": "#ffffff",
146
+ "background": "#ff00ff"
147
+ },
148
+ "style": [
149
+ "bold",
150
+ "reverse"
151
+ ]
152
+ }
153
+ ]
154
+ }
155
+ ]
156
+ }
157
+ ]
158
+ }