vedeu 0.6.8 → 0.6.9

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 (140) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -0
  3. data/README.md +1 -1
  4. data/docs/api.md +60 -67
  5. data/docs/configuration.md +8 -5
  6. data/docs/events.md +31 -15
  7. data/docs/events/application.md +12 -0
  8. data/docs/events/document.md +57 -0
  9. data/docs/events/drb.md +43 -0
  10. data/docs/events/focus.md +24 -0
  11. data/docs/events/menu.md +57 -0
  12. data/docs/events/movement.md +57 -0
  13. data/docs/events/refresh.md +25 -0
  14. data/docs/events/system.md +90 -0
  15. data/docs/events/visibility.md +68 -0
  16. data/lib/vedeu.rb +2 -2
  17. data/lib/vedeu/all.rb +3 -2
  18. data/lib/vedeu/api.rb +18 -18
  19. data/lib/vedeu/application/controller.rb +1 -1
  20. data/lib/vedeu/application/helper.rb +1 -1
  21. data/lib/vedeu/application/view.rb +1 -1
  22. data/lib/vedeu/bindings/application.rb +1 -12
  23. data/lib/vedeu/bindings/bindings.rb +3 -1
  24. data/lib/vedeu/bindings/document.rb +9 -62
  25. data/lib/vedeu/bindings/drb.rb +12 -56
  26. data/lib/vedeu/bindings/focus.rb +3 -28
  27. data/lib/vedeu/bindings/menus.rb +10 -66
  28. data/lib/vedeu/bindings/movement.rb +4 -69
  29. data/lib/vedeu/bindings/refresh.rb +3 -33
  30. data/lib/vedeu/bindings/system.rb +14 -100
  31. data/lib/vedeu/bindings/visibility.rb +20 -71
  32. data/lib/vedeu/borders/all.rb +4 -3
  33. data/lib/vedeu/borders/border.rb +39 -33
  34. data/lib/vedeu/borders/dsl.rb +40 -33
  35. data/lib/vedeu/borders/null.rb +2 -2
  36. data/lib/vedeu/borders/render.rb +29 -24
  37. data/lib/vedeu/borders/repository.rb +2 -2
  38. data/lib/vedeu/buffers/all.rb +8 -7
  39. data/lib/vedeu/buffers/buffer.rb +47 -39
  40. data/lib/vedeu/buffers/null.rb +2 -2
  41. data/lib/vedeu/buffers/refresh.rb +4 -3
  42. data/lib/vedeu/buffers/virtual_buffer.rb +122 -118
  43. data/lib/vedeu/buffers/virtual_buffers.rb +62 -56
  44. data/lib/vedeu/colours/background.rb +2 -1
  45. data/lib/vedeu/colours/colour.rb +21 -19
  46. data/lib/vedeu/colours/foreground.rb +2 -1
  47. data/lib/vedeu/colours/repository.rb +6 -5
  48. data/lib/vedeu/colours/translator.rb +39 -35
  49. data/lib/vedeu/configuration/api.rb +59 -51
  50. data/lib/vedeu/configuration/cli.rb +9 -7
  51. data/lib/vedeu/configuration/configuration.rb +41 -32
  52. data/lib/vedeu/cursors/cursor.rb +1 -1
  53. data/lib/vedeu/cursors/refresh.rb +20 -16
  54. data/lib/vedeu/distributed/server.rb +8 -6
  55. data/lib/vedeu/distributed/subprocess.rb +90 -86
  56. data/lib/vedeu/distributed/uri.rb +4 -3
  57. data/lib/vedeu/dsl/composition.rb +2 -2
  58. data/lib/vedeu/dsl/group.rb +4 -4
  59. data/lib/vedeu/dsl/interface.rb +5 -5
  60. data/lib/vedeu/dsl/presentation.rb +2 -2
  61. data/lib/vedeu/dsl/text.rb +1 -1
  62. data/lib/vedeu/editor/cropper.rb +4 -4
  63. data/lib/vedeu/editor/cursor.rb +6 -4
  64. data/lib/vedeu/editor/document.rb +20 -18
  65. data/lib/vedeu/editor/editor.rb +2 -2
  66. data/lib/vedeu/editor/line.rb +10 -5
  67. data/lib/vedeu/editor/lines.rb +2 -2
  68. data/lib/vedeu/internal_api.rb +4 -4
  69. data/lib/vedeu/models/focus.rb +197 -191
  70. data/lib/vedeu/models/group.rb +171 -159
  71. data/lib/vedeu/models/groups.rb +14 -10
  72. data/lib/vedeu/models/interface.rb +116 -110
  73. data/lib/vedeu/models/interfaces.rb +24 -20
  74. data/lib/vedeu/models/toggleable.rb +4 -4
  75. data/lib/vedeu/models/views/char.rb +1 -1
  76. data/lib/vedeu/models/views/composition.rb +1 -1
  77. data/lib/vedeu/models/views/line.rb +1 -1
  78. data/lib/vedeu/models/views/stream.rb +1 -1
  79. data/lib/vedeu/models/views/view.rb +1 -1
  80. data/lib/vedeu/null/interface.rb +1 -1
  81. data/lib/vedeu/null/view.rb +1 -1
  82. data/lib/vedeu/output/clear/named_interface.rb +1 -1
  83. data/lib/vedeu/output/compressor.rb +78 -73
  84. data/lib/vedeu/output/direct.rb +61 -57
  85. data/lib/vedeu/output/output.rb +34 -29
  86. data/lib/vedeu/output/{presentation.rb → presentation/presentation.rb} +2 -1
  87. data/lib/vedeu/output/presentation/style.rb +64 -18
  88. data/lib/vedeu/output/presentation/styles.rb +39 -0
  89. data/lib/vedeu/output/renderers/html.rb +2 -2
  90. data/lib/vedeu/output/renderers/json.rb +2 -1
  91. data/lib/vedeu/output/renderers/terminal.rb +3 -3
  92. data/lib/vedeu/output/renderers/text.rb +3 -3
  93. data/lib/vedeu/output/text.rb +186 -180
  94. data/lib/vedeu/output/wordwrap.rb +142 -138
  95. data/lib/vedeu/refresh/refresh.rb +2 -2
  96. data/lib/vedeu/templating/helpers.rb +11 -6
  97. data/lib/vedeu/templating/view_template.rb +1 -1
  98. data/lib/vedeu/terminal/terminal.rb +2 -2
  99. data/lib/vedeu/version.rb +1 -1
  100. data/test/lib/vedeu/borders/render_test.rb +1 -1
  101. data/test/lib/vedeu/buffers/buffer_test.rb +16 -14
  102. data/test/lib/vedeu/buffers/virtual_buffer_test.rb +105 -101
  103. data/test/lib/vedeu/buffers/virtual_buffers_test.rb +43 -39
  104. data/test/lib/vedeu/colours/colour_test.rb +4 -4
  105. data/test/lib/vedeu/cursors/cursor_test.rb +2 -2
  106. data/test/lib/vedeu/cursors/repository_test.rb +3 -3
  107. data/test/lib/vedeu/distributed/subprocess_test.rb +33 -29
  108. data/test/lib/vedeu/dsl/group_test.rb +3 -3
  109. data/test/lib/vedeu/dsl/interface_test.rb +6 -5
  110. data/test/lib/vedeu/dsl/line_test.rb +4 -2
  111. data/test/lib/vedeu/dsl/presentation_test.rb +2 -2
  112. data/test/lib/vedeu/dsl/text_test.rb +8 -8
  113. data/test/lib/vedeu/editor/document_test.rb +10 -6
  114. data/test/lib/vedeu/input/keymap_test.rb +1 -10
  115. data/test/lib/vedeu/models/focus_test.rb +177 -170
  116. data/test/lib/vedeu/models/group_test.rb +99 -95
  117. data/test/lib/vedeu/models/groups_test.rb +13 -9
  118. data/test/lib/vedeu/models/interface_test.rb +93 -87
  119. data/test/lib/vedeu/models/interfaces_test.rb +24 -20
  120. data/test/lib/vedeu/models/views/char_test.rb +2 -2
  121. data/test/lib/vedeu/models/views/line_test.rb +11 -7
  122. data/test/lib/vedeu/models/views/stream_test.rb +1 -1
  123. data/test/lib/vedeu/models/views/view_test.rb +1 -1
  124. data/test/lib/vedeu/output/clear/named_group_test.rb +1 -1
  125. data/test/lib/vedeu/output/clear/named_interface_test.rb +3 -1
  126. data/test/lib/vedeu/output/compressor_test.rb +126 -122
  127. data/test/lib/vedeu/output/direct_test.rb +49 -43
  128. data/test/lib/vedeu/output/output_test.rb +35 -31
  129. data/test/lib/vedeu/output/{presentation_test.rb → presentation/presentation_test.rb} +11 -7
  130. data/test/lib/vedeu/output/presentation/style_test.rb +88 -48
  131. data/test/lib/vedeu/output/presentation/styles_test.rb +84 -0
  132. data/test/lib/vedeu/output/text_test.rb +109 -105
  133. data/test/lib/vedeu/output/viewport_test.rb +3 -1
  134. data/test/lib/vedeu/output/wordwrap_test.rb +209 -205
  135. data/test/lib/vedeu/refresh/refresh_test.rb +3 -1
  136. data/test/lib/vedeu/templating/helpers_test.rb +6 -6
  137. data/test/lib/vedeu/templating/view_template_test.rb +1 -1
  138. metadata +17 -8
  139. data/lib/vedeu/output/style.rb +0 -76
  140. data/test/lib/vedeu/output/style_test.rb +0 -120
@@ -1,31 +1,35 @@
1
1
  module Vedeu
2
2
 
3
- # Allows the storing of interfaces and views.
4
- #
5
- class Interfaces < Vedeu::Repository
3
+ module Models
6
4
 
7
- singleton_class.send(:alias_method, :interfaces, :repository)
5
+ # Allows the storing of interfaces and views.
6
+ #
7
+ class Interfaces < Vedeu::Repository
8
8
 
9
- null Vedeu::Null::Interface
10
- real Vedeu::Interface
9
+ singleton_class.send(:alias_method, :interfaces, :repository)
11
10
 
12
- # Returns the interfaces in zindex order.
13
- #
14
- # @example
15
- # Vedeu.interfaces.zindexed
16
- #
17
- # @return [Array<Vedeu::Interface>]
18
- # @see Vedeu::DSL::Interface#zindex
19
- def zindexed
20
- all.sort_by(&:zindex)
21
- end
11
+ null Vedeu::Null::Interface
12
+ real Vedeu::Models::Interface
13
+
14
+ # Returns the interfaces in zindex order.
15
+ #
16
+ # @example
17
+ # Vedeu.interfaces.zindexed
18
+ #
19
+ # @return [Array<Vedeu::Models::Interface>]
20
+ # @see Vedeu::DSL::Interface#zindex
21
+ def zindexed
22
+ all.sort_by(&:zindex)
23
+ end
24
+
25
+ end # Interfaces
22
26
 
23
- end # Interfaces
27
+ class Interface
24
28
 
25
- class Interface
29
+ repo Vedeu::Models::Interfaces.repository
26
30
 
27
- repo Vedeu::Interfaces.repository
31
+ end # Interface
28
32
 
29
- end # Interface
33
+ end # Models
30
34
 
31
35
  end # Vedeu
@@ -1,10 +1,10 @@
1
1
  module Vedeu
2
2
 
3
- # This module provides behaviour for certain classes which can be toggled
4
- # between being shown and hidden.
3
+ # This module provides behaviour for certain classes which can be
4
+ # toggled between being shown and hidden.
5
5
  #
6
- # Currently using this are: {Vedeu::Cursors::Cursor}, {Vedeu::Group} and
7
- # {Vedeu::Interface}.
6
+ # Currently using this are: {Vedeu::Cursors::Cursor},
7
+ # {Vedeu::Models::Group} and {Vedeu::Models::Interface}.
8
8
  #
9
9
  module Toggleable
10
10
 
@@ -37,7 +37,7 @@ module Vedeu
37
37
  # @option attributes colour [Vedeu::Colours::Colour]
38
38
  # @option attributes parent [Vedeu::Views::Line]
39
39
  # @option attributes position [Vedeu::Geometry::Position]
40
- # @option attributes style [Vedeu::Style]
40
+ # @option attributes style [Vedeu::Presentation::Style]
41
41
  # @option attributes value [String]
42
42
  # @return [Vedeu::Views::Char]
43
43
  def initialize(attributes = {})
@@ -25,7 +25,7 @@ module Vedeu
25
25
  # @param attributes [Hash]
26
26
  # @option attributes client [void]
27
27
  # @option attributes colour [Vedeu::Colours::Colour]
28
- # @option attributes style [Vedeu::Style]
28
+ # @option attributes style [Vedeu::Presentation::Style]
29
29
  # @option attributes value [Vedeu::Views::ViewCollection]
30
30
  # @return [Vedeu::Views::Composition]
31
31
  def initialize(attributes = {})
@@ -27,7 +27,7 @@ module Vedeu
27
27
  # @param attributes [Hash]
28
28
  # @option attributes colour [Vedeu::Colours::Colour]
29
29
  # @option attributes parent [Vedeu::Views::View]
30
- # @option attributes style [Vedeu::Style]
30
+ # @option attributes style [Vedeu::Presentation::Style]
31
31
  # @option attributes value [Vedeu::Views::Streams]
32
32
  # @return [Vedeu::Views::Line]
33
33
  def initialize(attributes = {})
@@ -32,7 +32,7 @@ module Vedeu
32
32
  #
33
33
  # @param attributes [Hash]
34
34
  # @option attributes colour [Vedeu::Colours::Colour]
35
- # @option attributes style [Vedeu::Style]
35
+ # @option attributes style [Vedeu::Presentation::Style]
36
36
  # @option attributes parent [Vedeu::Views::Line]
37
37
  # @option attributes value [String]
38
38
  # @return [Vedeu::Views::Stream]
@@ -45,7 +45,7 @@ module Vedeu
45
45
  # @option attributes value [Vedeu::Views::Lines]
46
46
  # @option attributes name [String]
47
47
  # @option attributes parent [Vedeu::Views::Composition]
48
- # @option attributes style [Vedeu::Style]
48
+ # @option attributes style [Vedeu::Presentation::Style]
49
49
  # @option attributes zindex [Fixnum]
50
50
  # @return [Vedeu::Views::View]
51
51
  def initialize(attributes = {})
@@ -1,4 +1,4 @@
1
- require 'vedeu/output/presentation'
1
+ require 'vedeu/output/presentation/presentation'
2
2
 
3
3
  module Vedeu
4
4
 
@@ -1,4 +1,4 @@
1
- require 'vedeu/output/presentation'
1
+ require 'vedeu/output/presentation/presentation'
2
2
 
3
3
  module Vedeu
4
4
 
@@ -51,7 +51,7 @@ module Vedeu
51
51
  @geometry ||= Vedeu.geometries.by_name(name)
52
52
  end
53
53
 
54
- # @see Vedeu::Interfaces#by_name
54
+ # @see Vedeu::Models::Interfaces#by_name
55
55
  def interface
56
56
  @interface ||= Vedeu.interfaces.by_name(name)
57
57
  end
@@ -1,85 +1,90 @@
1
1
  module Vedeu
2
2
 
3
- # During the conversion of a Vedeu::Views::Char object into a string of escape
4
- # sequences, this class removes multiple occurences of the same escape
5
- # sequence, resulting in a smaller payload being sent to the renderer.
6
- #
7
- class Compressor
8
-
9
- # @param output [Array<Array<Vedeu::Views::Char>>]
10
- # @return [String]
11
- def self.render(output)
12
- new(output).render
13
- end
14
-
15
- # Returns a new instance of Vedeu::Compressor.
3
+ module Output
4
+
5
+ # During the conversion of a Vedeu::Views::Char object into a
6
+ # string of escape sequences, this class removes multiple
7
+ # occurences of the same escape sequence, resulting in a smaller
8
+ # payload being sent to the renderer.
16
9
  #
17
- # @param output [Array<Array<Vedeu::Views::Char>>]
18
- # @return [Vedeu::Compressor]
19
- def initialize(output)
20
- @output = output
21
- @colour = ''
22
- @style = ''
23
- end
24
-
25
- # @note
26
- # Takes approximately ~25ms for 2100 chars. (2015-07-25)
27
- # @return [String]
28
- def render
29
- if Vedeu::Configuration.compression?
30
- compress
31
-
32
- else
33
- uncompress
10
+ class Compressor
11
+
12
+ # @param output [Array<Array<Vedeu::Views::Char>>]
13
+ # @return [String]
14
+ def self.render(output)
15
+ new(output).render
16
+ end
34
17
 
18
+ # Returns a new instance of Vedeu::Output::Compressor.
19
+ #
20
+ # @param output [Array<Array<Vedeu::Views::Char>>]
21
+ # @return [Vedeu::Output::Compressor]
22
+ def initialize(output)
23
+ @output = output
24
+ @colour = ''
25
+ @style = ''
35
26
  end
36
- end
37
27
 
38
- protected
28
+ # @note
29
+ # Takes approximately ~25ms for 2100 chars. (2015-07-25)
30
+ # @return [String]
31
+ def render
32
+ if Vedeu::Configuration.compression?
33
+ compress
39
34
 
40
- # @!attribute [r] output
41
- # @return [Array<Array<Vedeu::Views::Char>>]
42
- attr_reader :output
35
+ else
36
+ uncompress
37
+
38
+ end
39
+ end
43
40
 
44
- private
41
+ protected
42
+
43
+ # @!attribute [r] output
44
+ # @return [Array<Array<Vedeu::Views::Char>>]
45
+ attr_reader :output
46
+
47
+ private
48
+
49
+ # @return [String]
50
+ def compress
51
+ out = ''
52
+ Array(output).flatten.each do |char|
53
+ out << char.position.to_s
54
+ out << colour_for(char)
55
+ out << style_for(char)
56
+ out << char.value
57
+ end
58
+ out
59
+ end
45
60
 
46
- # @return [String]
47
- def compress
48
- out = ''
49
- Array(output).flatten.each do |char|
50
- out << char.position.to_s
51
- out << colour_for(char)
52
- out << style_for(char)
53
- out << char.value
61
+ # @return [String]
62
+ def uncompress
63
+ out = ''
64
+ Array(output).flatten.each { |char| out << char.to_s }
65
+ out
54
66
  end
55
- out
56
- end
57
-
58
- # @return [String]
59
- def uncompress
60
- out = ''
61
- Array(output).flatten.each { |char| out << char.to_s }
62
- out
63
- end
64
-
65
- # @param char [Vedeu::Views::Char]
66
- # @return [String]
67
- def colour_for(char)
68
- return '' if char.colour == @colour
69
-
70
- @colour = char.colour
71
- @colour.to_s
72
- end
73
-
74
- # @param char [Vedeu::Views::Char]
75
- # @return [String]
76
- def style_for(char)
77
- return '' if char.style == @style
78
-
79
- @style = char.style
80
- @style.to_s
81
- end
82
-
83
- end # Compressor
67
+
68
+ # @param char [Vedeu::Views::Char]
69
+ # @return [String]
70
+ def colour_for(char)
71
+ return '' if char.colour == @colour
72
+
73
+ @colour = char.colour
74
+ @colour.to_s
75
+ end
76
+
77
+ # @param char [Vedeu::Views::Char]
78
+ # @return [String]
79
+ def style_for(char)
80
+ return '' if char.style == @style
81
+
82
+ @style = char.style
83
+ @style.to_s
84
+ end
85
+
86
+ end # Compressor
87
+
88
+ end # Output
84
89
 
85
90
  end # Vedeu
@@ -1,62 +1,66 @@
1
1
  module Vedeu
2
2
 
3
- # Write a string directly to the terminal at defined coordinates.
4
- #
5
- class Direct
6
-
7
- # @param value [String]
8
- # @param x [Fixnum]
9
- # @param y [Fixnum]
10
- # @return [String]
11
- def self.write(value:, x:, y:)
12
- new(value: value, x: x, y: y).write
13
- end
14
-
15
- # Returns a new instance of Vedeu::Direct.
3
+ module Output
4
+
5
+ # Write a string directly to the terminal at defined coordinates.
16
6
  #
17
- # @param value [String]
18
- # @param x [Fixnum]
19
- # @param y [Fixnum]
20
- # @return [Vedeu::Direct]
21
- def initialize(value:, x:, y:)
22
- @value = value || ''
23
- @x = x || 1
24
- @y = y || 1
25
- end
26
-
27
- # @return [String]
28
- def write
29
- Vedeu::Terminal.output(output)
30
-
31
- output
32
- end
33
-
34
- protected
35
-
36
- # @attribute [r] value
37
- # @return [String]
38
- attr_reader :value
39
-
40
- # @attribute [r] x
41
- # @return [Fixnum]
42
- attr_reader :x
43
-
44
- # @attribute [r] y
45
- # @return [Fixnum]
46
- attr_reader :y
47
-
48
- private
49
-
50
- # @return [String]
51
- def output
52
- (Array(position) + Array(value)).join
53
- end
54
-
55
- # @return [String]
56
- def position
57
- Vedeu::Geometry::Position.new(y, x).to_s
58
- end
59
-
60
- end # Direct
7
+ class Direct
8
+
9
+ # @param value [String]
10
+ # @param x [Fixnum]
11
+ # @param y [Fixnum]
12
+ # @return [String]
13
+ def self.write(value:, x:, y:)
14
+ new(value: value, x: x, y: y).write
15
+ end
16
+
17
+ # Returns a new instance of Vedeu::Output::Direct.
18
+ #
19
+ # @param value [String]
20
+ # @param x [Fixnum]
21
+ # @param y [Fixnum]
22
+ # @return [Vedeu::Output::Direct]
23
+ def initialize(value:, x:, y:)
24
+ @value = value || ''
25
+ @x = x || 1
26
+ @y = y || 1
27
+ end
28
+
29
+ # @return [String]
30
+ def write
31
+ Vedeu::Terminal.output(output)
32
+
33
+ output
34
+ end
35
+
36
+ protected
37
+
38
+ # @attribute [r] value
39
+ # @return [String]
40
+ attr_reader :value
41
+
42
+ # @attribute [r] x
43
+ # @return [Fixnum]
44
+ attr_reader :x
45
+
46
+ # @attribute [r] y
47
+ # @return [Fixnum]
48
+ attr_reader :y
49
+
50
+ private
51
+
52
+ # @return [String]
53
+ def output
54
+ (Array(position) + Array(value)).join
55
+ end
56
+
57
+ # @return [String]
58
+ def position
59
+ Vedeu::Geometry::Position.new(y, x).to_s
60
+ end
61
+
62
+ end # Direct
63
+
64
+ end # Output
61
65
 
62
66
  end # Vedeu
@@ -1,43 +1,48 @@
1
1
  module Vedeu
2
2
 
3
- # Sends the output to the renderers.
4
- #
5
- class Output
3
+ module Output
6
4
 
7
- # Writes output to the defined renderers.
5
+ # Sends the output to the renderers.
8
6
  #
9
- # @return [Array|String]
10
- # @see #initialize
11
- def self.render(output)
12
- new(output).render
13
- end
7
+ class Output
8
+
9
+ # Writes output to the defined renderers.
10
+ #
11
+ # @return [Array|String]
12
+ # @see #initialize
13
+ def self.render(output)
14
+ new(output).render
15
+ end
14
16
 
15
- # Return a new instance of Vedeu::Output.
16
- #
17
- # @param output [Array<Array<Vedeu::Views::Char>>]
18
- # @return [Vedeu::Output]
19
- def initialize(output)
20
- @output = output
21
- end
17
+ # Return a new instance of Vedeu::Output::Output.
18
+ #
19
+ # @param output [Array<Array<Vedeu::Views::Char>>]
20
+ # @return [Vedeu::Output::Output]
21
+ def initialize(output)
22
+ @output = output
23
+ end
22
24
 
23
- # Send the view to the renderers.
24
- #
25
- # @return [Array]
26
- def render
27
- if Vedeu::Configuration.drb?
28
- Vedeu.trigger(:_drb_store_output_, output)
25
+ # Send the view to the renderers.
26
+ #
27
+ # @return [Array]
28
+ def render
29
+ if Vedeu::Configuration.drb?
30
+ Vedeu.trigger(:_drb_store_output_, output)
31
+
32
+ # Vedeu::Renderers::HTML.
33
+ # to_file(Vedeu::Buffers::VirtualBuffers.retrieve)
34
+ end
29
35
 
30
- # Vedeu::Renderers::HTML.to_file(Vedeu::VirtualBuffers.retrieve)
36
+ Vedeu.renderers.render(output) if Vedeu.ready?
31
37
  end
32
38
 
33
- Vedeu.renderers.render(output) if Vedeu.ready?
34
- end
39
+ protected
35
40
 
36
- protected
41
+ # @!attribute [r] output
42
+ # @return [Array<Array<Vedeu::Views::Char>>]
43
+ attr_reader :output
37
44
 
38
- # @!attribute [r] output
39
- # @return [Array<Array<Vedeu::Views::Char>>]
40
- attr_reader :output
45
+ end # Output
41
46
 
42
47
  end # Output
43
48