vedeu 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/examples/views/_interfaces.rb +127 -0
  3. data/examples/views/empty_template.rb +10 -0
  4. data/examples/views/expected/vedeu_full_screen.html +140 -0
  5. data/examples/views/expected/vedeu_full_screen.json +96050 -0
  6. data/examples/views/expected/vedeu_full_screen.out +1 -0
  7. data/examples/views/expected/vedeu_full_screen.txt +50 -0
  8. data/examples/views/expected/vedeu_line.html +140 -0
  9. data/examples/views/expected/vedeu_line.json +96050 -0
  10. data/examples/views/expected/vedeu_line.out +1 -0
  11. data/examples/views/expected/vedeu_line.txt +58 -0
  12. data/examples/views/expected/vedeu_lines.html +140 -0
  13. data/examples/views/expected/vedeu_lines.json +96050 -0
  14. data/examples/views/expected/{lines.out → vedeu_lines.out} +1 -1
  15. data/examples/views/expected/vedeu_lines_alignment.html +80 -0
  16. data/examples/views/expected/vedeu_lines_alignment.json +46370 -0
  17. data/examples/views/expected/vedeu_lines_alignment.out +1 -0
  18. data/examples/views/full_screen.rb +10 -0
  19. data/examples/views/line.rb +11 -106
  20. data/examples/views/lines.rb +8 -127
  21. data/examples/views/lines_alignment.rb +17 -125
  22. data/examples/views/runner.sh +65 -19
  23. data/lib/vedeu/borders/border.rb +6 -6
  24. data/lib/vedeu/borders/refresh.rb +4 -6
  25. data/lib/vedeu/buffers/buffer.rb +1 -1
  26. data/lib/vedeu/buffers/terminal.rb +4 -4
  27. data/lib/vedeu/buffers/view.rb +2 -2
  28. data/lib/vedeu/cells/all.rb +2 -2
  29. data/lib/vedeu/cells/border.rb +5 -0
  30. data/lib/vedeu/cells/borders/all.rb +2 -8
  31. data/lib/vedeu/cells/borders/edges/all.rb +6 -0
  32. data/lib/vedeu/cells/borders/{bottom_horizontal.rb → edges/bottom_horizontal.rb} +0 -0
  33. data/lib/vedeu/cells/borders/{left_vertical.rb → edges/left_vertical.rb} +0 -0
  34. data/lib/vedeu/cells/borders/{right_vertical.rb → edges/right_vertical.rb} +0 -0
  35. data/lib/vedeu/cells/borders/{top_horizontal.rb → edges/top_horizontal.rb} +0 -0
  36. data/lib/vedeu/cells/borders/horizontal.rb +5 -0
  37. data/lib/vedeu/cells/borders/vertical.rb +5 -0
  38. data/lib/vedeu/cells/borders/vertices/all.rb +6 -0
  39. data/lib/vedeu/cells/borders/{bottom_left.rb → vertices/bottom_left.rb} +5 -0
  40. data/lib/vedeu/cells/borders/{bottom_right.rb → vertices/bottom_right.rb} +5 -0
  41. data/lib/vedeu/cells/borders/{top_left.rb → vertices/top_left.rb} +5 -0
  42. data/lib/vedeu/cells/borders/{top_right.rb → vertices/top_right.rb} +5 -0
  43. data/lib/vedeu/cells/char.rb +16 -0
  44. data/lib/vedeu/cells/clear.rb +5 -0
  45. data/lib/vedeu/cells/cursor.rb +70 -0
  46. data/lib/vedeu/cells/empty.rb +24 -14
  47. data/lib/vedeu/cells/escape.rb +8 -7
  48. data/lib/vedeu/cells/support/all.rb +3 -0
  49. data/lib/vedeu/cells/support/html.rb +98 -0
  50. data/lib/vedeu/colours/background.rb +21 -1
  51. data/lib/vedeu/colours/colour.rb +10 -2
  52. data/lib/vedeu/colours/foreground.rb +21 -1
  53. data/lib/vedeu/colours/translator.rb +17 -24
  54. data/lib/vedeu/colours/validator.rb +9 -9
  55. data/lib/vedeu/configuration/api.rb +1 -1
  56. data/lib/vedeu/cursors/cursor.rb +5 -5
  57. data/lib/vedeu/dsl/elements.rb +22 -79
  58. data/lib/vedeu/dsl/string/text.rb +3 -3
  59. data/lib/vedeu/editor/cropper.rb +2 -2
  60. data/lib/vedeu/editor/cursor.rb +1 -1
  61. data/lib/vedeu/editor/document.rb +1 -1
  62. data/lib/vedeu/geometries/area/dimension.rb +1 -1
  63. data/lib/vedeu/geometries/position.rb +5 -2
  64. data/lib/vedeu/interfaces/clear.rb +5 -5
  65. data/lib/vedeu/models/row.rb +4 -3
  66. data/lib/vedeu/output/compressor.rb +7 -7
  67. data/lib/vedeu/output/output.rb +8 -13
  68. data/lib/vedeu/output/viewport.rb +1 -1
  69. data/lib/vedeu/presentation/background.rb +2 -2
  70. data/lib/vedeu/presentation/colour.rb +0 -4
  71. data/lib/vedeu/presentation/foreground.rb +2 -2
  72. data/lib/vedeu/presentation/style.rb +1 -1
  73. data/lib/vedeu/presentation/styles.rb +0 -3
  74. data/lib/vedeu/renderers/file.rb +10 -68
  75. data/lib/vedeu/renderers/html.rb +28 -96
  76. data/lib/vedeu/renderers/json.rb +15 -31
  77. data/lib/vedeu/renderers/options.rb +160 -14
  78. data/lib/vedeu/renderers/templates/html_renderer.vedeu +1 -0
  79. data/lib/vedeu/renderers/terminal.rb +16 -17
  80. data/lib/vedeu/renderers/text.rb +32 -41
  81. data/lib/vedeu/version.rb +1 -1
  82. data/lib/vedeu/views/all.rb +0 -2
  83. data/lib/vedeu/views/chars.rb +6 -3
  84. data/lib/vedeu/views/stream.rb +3 -2
  85. data/test/lib/vedeu/borders/caption_test.rb +17 -17
  86. data/test/lib/vedeu/borders/title_test.rb +12 -12
  87. data/test/lib/vedeu/cells/border_test.rb +6 -0
  88. data/test/lib/vedeu/cells/borders/{bottom_horizontal_test.rb → edges/bottom_horizontal_test.rb} +0 -0
  89. data/test/lib/vedeu/cells/borders/{left_vertical_test.rb → edges/left_vertical_test.rb} +0 -0
  90. data/test/lib/vedeu/cells/borders/{right_vertical_test.rb → edges/right_vertical_test.rb} +0 -0
  91. data/test/lib/vedeu/cells/borders/{top_horizontal_test.rb → edges/top_horizontal_test.rb} +0 -0
  92. data/test/lib/vedeu/cells/borders/horizontal_test.rb +6 -0
  93. data/test/lib/vedeu/cells/borders/vertical_test.rb +6 -0
  94. data/test/lib/vedeu/cells/borders/{bottom_left_test.rb → vertices/bottom_left_test.rb} +6 -0
  95. data/test/lib/vedeu/cells/borders/{bottom_right_test.rb → vertices/bottom_right_test.rb} +6 -0
  96. data/test/lib/vedeu/cells/borders/{top_left_test.rb → vertices/top_left_test.rb} +6 -0
  97. data/test/lib/vedeu/cells/borders/{top_right_test.rb → vertices/top_right_test.rb} +6 -0
  98. data/test/lib/vedeu/cells/char_test.rb +18 -0
  99. data/test/lib/vedeu/cells/clear_test.rb +6 -0
  100. data/test/lib/vedeu/cells/cursor_test.rb +113 -0
  101. data/test/lib/vedeu/cells/empty_test.rb +100 -7
  102. data/test/lib/vedeu/cells/escape_test.rb +29 -13
  103. data/test/lib/vedeu/cells/support/html_test.rb +100 -0
  104. data/test/lib/vedeu/colours/background_test.rb +35 -3
  105. data/test/lib/vedeu/colours/colour_test.rb +66 -0
  106. data/test/lib/vedeu/colours/foreground_test.rb +35 -3
  107. data/test/lib/vedeu/colours/translator_test.rb +0 -34
  108. data/test/lib/vedeu/colours/validator_test.rb +84 -6
  109. data/test/lib/vedeu/cursors/cursor_test.rb +4 -4
  110. data/test/lib/vedeu/cursors/refresh_test.rb +4 -1
  111. data/test/lib/vedeu/dsl/string/text_test.rb +36 -36
  112. data/test/lib/vedeu/editor/cropper_test.rb +15 -15
  113. data/test/lib/vedeu/geometries/position_test.rb +14 -1
  114. data/test/lib/vedeu/models/page_test.rb +10 -10
  115. data/test/lib/vedeu/models/row_test.rb +7 -7
  116. data/test/lib/vedeu/output/compressor_test.rb +63 -50
  117. data/test/lib/vedeu/renderers/file_test.rb +64 -35
  118. data/test/lib/vedeu/renderers/html_test.rb +15 -12
  119. data/test/lib/vedeu/renderers/json_test.rb +79 -56
  120. data/test/lib/vedeu/renderers/options_test.rb +74 -26
  121. data/test/lib/vedeu/renderers/terminal_test.rb +34 -4
  122. data/test/lib/vedeu/renderers/text_test.rb +35 -3
  123. data/test/lib/vedeu/views/chars_test.rb +6 -0
  124. metadata +50 -41
  125. data/examples/views/expected/line.out +0 -1
  126. data/examples/views/expected/lines_alignment.out +0 -1
  127. data/lib/vedeu/cells/html.rb +0 -21
  128. data/lib/vedeu/cells/json.rb +0 -21
  129. data/lib/vedeu/views/char.rb +0 -180
  130. data/lib/vedeu/views/html_char.rb +0 -133
  131. data/test/lib/vedeu/cells/html_test.rb +0 -15
  132. data/test/lib/vedeu/cells/json_test.rb +0 -15
  133. data/test/lib/vedeu/views/char_test.rb +0 -283
  134. data/test/lib/vedeu/views/html_char_test.rb +0 -125
@@ -3,6 +3,7 @@
3
3
  <style type='text/css'>
4
4
  body {
5
5
  background:#000;
6
+ color:#fff;
6
7
  }
7
8
  td {
8
9
  border:1px #171717 solid;
@@ -4,40 +4,39 @@ module Vedeu
4
4
 
5
5
  module Renderers
6
6
 
7
- # Converts a grid of {Vedeu::Views::Char} objects into a stream of
7
+ # Converts a grid of {Vedeu::Cells::Char} objects into a stream of
8
8
  # escape sequences and content suitable for a terminal.
9
9
  #
10
10
  class Terminal
11
11
 
12
12
  include Vedeu::Renderers::Options
13
13
 
14
- # Returns a new instance of Vedeu::Renderers::Terminal.
15
- #
16
- # @param options [Hash]
17
- # @return [Vedeu::Renderers::Terminal]
18
- def initialize(options = {})
19
- @options = options || {}
20
- end
21
-
22
14
  # Render a cleared output.
23
15
  #
24
16
  # @return [String]
25
17
  def clear
26
18
  Vedeu::Terminal.clear
19
+
20
+ render('')
27
21
  end
28
22
 
29
- # @param output [Vedeu::Models::Page]
30
- # @return [Array<String>]
31
- def render(output)
32
- Vedeu::Terminal.output(parse(output))
23
+ # Render the output (either content or clearing) to the console.
24
+ #
25
+ # @return [String]
26
+ def write
27
+ if write_file?
28
+ Vedeu::Terminal.output(write_file)
29
+
30
+ else
31
+ Vedeu::Terminal.output(content)
32
+
33
+ end
33
34
  end
34
35
 
35
36
  private
36
37
 
37
- # @param output [Vedeu::Models::Page]
38
- # @return [Array<Array<Vedeu::Views::Char>>]
39
- def parse(output)
40
- Vedeu::Output::Compressor.render(output, options)
38
+ def content
39
+ compression
41
40
  end
42
41
 
43
42
  end # Terminal
@@ -5,33 +5,39 @@ module Vedeu
5
5
  module Renderers
6
6
 
7
7
  # Converts a grid of {Vedeu::Cells} objects or
8
- # {Vedeu::Views::Char} objects into a stream of characters without
8
+ # {Vedeu::Cells::Char} objects into a stream of characters without
9
9
  # escape sequences.
10
10
  #
11
11
  class Text < Vedeu::Renderers::File
12
12
 
13
- include Vedeu::Common
14
13
  include Vedeu::Renderers::Options
15
14
 
16
- # Returns a new instance of Vedeu::Renderers::Text.
15
+ # Render a cleared output.
17
16
  #
18
- # @param options [Hash]
19
- # @return [Vedeu::Renderers::Text]
20
- def initialize(options = {})
21
- @options = options || {}
17
+ # @return [String]
18
+ def clear
19
+ render('')
22
20
  end
23
21
 
24
- # Render a cleared output.
22
+ private
23
+
24
+ # Combine all characters in a row to produce a line, then all
25
+ # lines should be terminated with `\n`. Convert to an array of
26
+ # UTF8 codepoints, and any codepoint above 255 should be
27
+ # converted to a space.
25
28
  #
26
29
  # @return [String]
27
- def clear
28
- ''
30
+ def content
31
+ return '' if string?(output) || absent?(output)
32
+
33
+ buffer.map(&:join).join("\n").unpack('U*').map do |c|
34
+ (c > 255) ? ' ' : c.chr
35
+ end.join
29
36
  end
30
37
 
31
- # @param output [Vedeu::Models::Page]
32
38
  # @return [Array<String>]
33
- def render(output)
34
- return '' unless present?(output)
39
+ def buffer
40
+ empty = Array.new(Vedeu.height) { Array.new(Vedeu.width) { ' ' } }
35
41
 
36
42
  output.each do |row|
37
43
  row.each do |char|
@@ -39,29 +45,11 @@ module Vedeu
39
45
  positionable?(char) &&
40
46
  textual?(char)
41
47
 
42
- # fail char.inspect
43
-
44
- buffer[char.position.y - 1][char.position.x - 1] = char.text
48
+ empty[char.position.y - 1][char.position.x - 1] = char.text
45
49
  end
46
50
  end
47
51
 
48
- ::File.write(filename, data) if write_file?
49
-
50
- data
51
- end
52
-
53
- private
54
-
55
- # @return [Array<String>]
56
- def buffer
57
- @buffer ||= Array.new(Vedeu.height) { Array.new(Vedeu.width) { ' ' } }
58
- end
59
-
60
- # @return [String]
61
- def data
62
- @data ||= buffer.map(&:join).join("\n").unpack('U*').map do |c|
63
- (c > 255) ? ' ' : c.chr
64
- end.join
52
+ empty
65
53
  end
66
54
 
67
55
  # @return [Boolean]
@@ -73,18 +61,21 @@ module Vedeu
73
61
  # @return [Array<Class>]
74
62
  def renderables
75
63
  [
76
- Vedeu::Cells::Empty,
77
- Vedeu::Cells::TopLeft,
78
- Vedeu::Cells::TopHorizontal,
64
+ Vedeu::Cells::Border,
65
+ Vedeu::Cells::BottomHorizontal,
66
+ Vedeu::Cells::BottomLeft,
67
+ Vedeu::Cells::BottomRight,
68
+ Vedeu::Cells::Corner,
79
69
  Vedeu::Cells::Char,
80
- Vedeu::Cells::TopRight,
81
- Vedeu::Views::Char,
82
70
  Vedeu::Cells::Clear,
71
+ Vedeu::Cells::Empty,
72
+ Vedeu::Cells::Horizontal,
83
73
  Vedeu::Cells::LeftVertical,
84
74
  Vedeu::Cells::RightVertical,
85
- Vedeu::Cells::BottomLeft,
86
- Vedeu::Cells::BottomHorizontal,
87
- Vedeu::Cells::BottomRight,
75
+ Vedeu::Cells::TopHorizontal,
76
+ Vedeu::Cells::TopLeft,
77
+ Vedeu::Cells::TopRight,
78
+ Vedeu::Cells::Vertical,
88
79
  ]
89
80
  end
90
81
 
data/lib/vedeu/version.rb CHANGED
@@ -3,6 +3,6 @@
3
3
  module Vedeu
4
4
 
5
5
  # The current version of Vedeu.
6
- VERSION = '0.8.2'
6
+ VERSION = '0.8.3'
7
7
 
8
8
  end
@@ -14,8 +14,6 @@ require 'vedeu/views/default_attributes'
14
14
  require 'vedeu/views/value'
15
15
 
16
16
  require 'vedeu/views/chars'
17
- require 'vedeu/views/char'
18
- require 'vedeu/views/html_char'
19
17
  require 'vedeu/views/streams'
20
18
  require 'vedeu/views/stream'
21
19
  require 'vedeu/views/lines'
@@ -4,7 +4,7 @@ module Vedeu
4
4
 
5
5
  module Views
6
6
 
7
- # A collection of {Vedeu::Views::Char} instances.
7
+ # A collection of {Vedeu::Cells::Char} instances.
8
8
  #
9
9
  # @api private
10
10
  #
@@ -25,12 +25,15 @@ module Vedeu
25
25
 
26
26
  coerced_collection = []
27
27
  collection.each do |element|
28
- coerced_collection << element if element.is_a?(Vedeu::Views::Char)
28
+ coerced_collection << element if element.is_a?(Vedeu::Cells::Char)
29
29
  end
30
30
 
31
31
  new(coerced_collection, parent, name)
32
32
 
33
33
  elsif collection.is_a?(Vedeu::Views::Stream)
34
+ Vedeu::Views::Chars.coerce(collection.value,
35
+ collection.parent,
36
+ collection.name)
34
37
 
35
38
  elsif collection.is_a?(String)
36
39
  return new([], parent, name) if collection.empty?
@@ -44,7 +47,7 @@ module Vedeu
44
47
 
45
48
  else
46
49
  fail Vedeu::Error::InvalidSyntax,
47
- 'Cannot coerce for Vedeu::View::Streams, as collection ' \
50
+ 'Cannot coerce for Vedeu::View::Chars, as collection is ' \
48
51
  'unrecognised.'
49
52
 
50
53
  end
@@ -1,4 +1,5 @@
1
1
  require 'vedeu/dsl/all'
2
+ require 'vedeu/cells/all'
2
3
 
3
4
  # frozen_string_literal: true
4
5
 
@@ -32,7 +33,7 @@ module Vedeu
32
33
  include Vedeu::Views::Value
33
34
  collection Vedeu::Views::Chars
34
35
  deputy Vedeu::Views::Stream::DSL
35
- entity Vedeu::Views::Char
36
+ entity Vedeu::Cells::Char
36
37
  parent Vedeu::Views::Streams
37
38
 
38
39
  def_delegators :value,
@@ -73,7 +74,7 @@ module Vedeu
73
74
 
74
75
  # An object is equal when its values are the same.
75
76
  #
76
- # @param other [Vedeu::Views::Char]
77
+ # @param other [void]
77
78
  # @return [Boolean]
78
79
  def eql?(other)
79
80
  self.class == other.class && value == other.value
@@ -8,25 +8,25 @@ module Vedeu
8
8
 
9
9
  describe Caption do
10
10
 
11
- let(:described) { Vedeu::Borders::Caption }
12
- let(:instance) { described.new(_name, _value, horizontal) }
13
- let(:_name) { 'Vedeu::Borders::Caption' }
14
- let(:_value) { 'Bismuth' }
11
+ let(:described) { Vedeu::Borders::Caption }
12
+ let(:instance) { described.new(_name, _value, horizontal) }
13
+ let(:_name) { 'Vedeu::Borders::Caption' }
14
+ let(:_value) { 'Bismuth' }
15
+ let(:type) { :bottom_horizontal }
15
16
  let(:horizontal) {
16
17
  [
17
- Vedeu::Views::Char.new(value: '-', position: [4, 1], border: type),
18
- Vedeu::Views::Char.new(value: '-', position: [4, 2], border: type),
19
- Vedeu::Views::Char.new(value: '-', position: [4, 3], border: type),
20
- Vedeu::Views::Char.new(value: '-', position: [4, 4], border: type),
21
- Vedeu::Views::Char.new(value: '-', position: [4, 5], border: type),
22
- Vedeu::Views::Char.new(value: '-', position: [4, 6], border: type),
23
- Vedeu::Views::Char.new(value: '-', position: [4, 7], border: type),
24
- Vedeu::Views::Char.new(value: '-', position: [4, 8], border: type),
25
- Vedeu::Views::Char.new(value: '-', position: [4, 9], border: type),
26
- Vedeu::Views::Char.new(value: '-', position: [4, 10], border: type),
18
+ Vedeu::Cells::BottomHorizontal.new(position: [4, 1]),
19
+ Vedeu::Cells::BottomHorizontal.new(position: [4, 2]),
20
+ Vedeu::Cells::BottomHorizontal.new(position: [4, 3]),
21
+ Vedeu::Cells::BottomHorizontal.new(position: [4, 4]),
22
+ Vedeu::Cells::BottomHorizontal.new(position: [4, 5]),
23
+ Vedeu::Cells::BottomHorizontal.new(position: [4, 6]),
24
+ Vedeu::Cells::BottomHorizontal.new(position: [4, 7]),
25
+ Vedeu::Cells::BottomHorizontal.new(position: [4, 8]),
26
+ Vedeu::Cells::BottomHorizontal.new(position: [4, 9]),
27
+ Vedeu::Cells::BottomHorizontal.new(position: [4, 10]),
27
28
  ]
28
29
  }
29
- let(:type) { :bottom_horizontal }
30
30
 
31
31
  describe '#render' do
32
32
  subject { instance.render }
@@ -50,7 +50,7 @@ module Vedeu
50
50
  }
51
51
  let(:expected) {
52
52
  [
53
- Vedeu::Views::Char.new(value: '-', position: [4, 1], border: type),
53
+ Vedeu::Cells::BottomHorizontal.new(position: [4, 1]),
54
54
  Vedeu::Cells::Char.new(value: ' ', position: [4, 2]),
55
55
  Vedeu::Cells::Char.new(value: 'B', position: [4, 3]),
56
56
  Vedeu::Cells::Char.new(value: 'i', position: [4, 4]),
@@ -59,7 +59,7 @@ module Vedeu
59
59
  Vedeu::Cells::Char.new(value: 'u', position: [4, 7]),
60
60
  Vedeu::Cells::Char.new(value: 't', position: [4, 8]),
61
61
  Vedeu::Cells::Char.new(value: ' ', position: [4, 9]),
62
- Vedeu::Views::Char.new(value: '-', position: [4, 10], border: type),
62
+ Vedeu::Cells::BottomHorizontal.new(position: [4, 10]),
63
63
  ]
64
64
  }
65
65
 
@@ -14,16 +14,16 @@ module Vedeu
14
14
  let(:_value) { 'Aluminium' }
15
15
  let(:horizontal) {
16
16
  [
17
- Vedeu::Views::Char.new(value: '-', position: [1, 1], border: type),
18
- Vedeu::Views::Char.new(value: '-', position: [1, 2], border: type),
19
- Vedeu::Views::Char.new(value: '-', position: [1, 3], border: type),
20
- Vedeu::Views::Char.new(value: '-', position: [1, 4], border: type),
21
- Vedeu::Views::Char.new(value: '-', position: [1, 5], border: type),
22
- Vedeu::Views::Char.new(value: '-', position: [1, 6], border: type),
23
- Vedeu::Views::Char.new(value: '-', position: [1, 7], border: type),
24
- Vedeu::Views::Char.new(value: '-', position: [1, 8], border: type),
25
- Vedeu::Views::Char.new(value: '-', position: [1, 9], border: type),
26
- Vedeu::Views::Char.new(value: '-', position: [1, 10], border: type),
17
+ Vedeu::Cells::TopHorizontal.new(position: [1, 1]),
18
+ Vedeu::Cells::TopHorizontal.new(position: [1, 2]),
19
+ Vedeu::Cells::TopHorizontal.new(position: [1, 3]),
20
+ Vedeu::Cells::TopHorizontal.new(position: [1, 4]),
21
+ Vedeu::Cells::TopHorizontal.new(position: [1, 5]),
22
+ Vedeu::Cells::TopHorizontal.new(position: [1, 6]),
23
+ Vedeu::Cells::TopHorizontal.new(position: [1, 7]),
24
+ Vedeu::Cells::TopHorizontal.new(position: [1, 8]),
25
+ Vedeu::Cells::TopHorizontal.new(position: [1, 9]),
26
+ Vedeu::Cells::TopHorizontal.new(position: [1, 10]),
27
27
  ]
28
28
  }
29
29
  let(:type) { :top_horizontal }
@@ -47,7 +47,7 @@ module Vedeu
47
47
  context 'when the title is not empty' do
48
48
  let(:expected) {
49
49
  [
50
- Vedeu::Views::Char.new(value: '-', position: [1, 1], border: type),
50
+ Vedeu::Cells::TopHorizontal.new(position: [1, 1]),
51
51
  Vedeu::Cells::Char.new(value: ' ', position: [1, 2]),
52
52
  Vedeu::Cells::Char.new(value: 'A', position: [1, 3]),
53
53
  Vedeu::Cells::Char.new(value: 'l', position: [1, 4]),
@@ -56,7 +56,7 @@ module Vedeu
56
56
  Vedeu::Cells::Char.new(value: 'i', position: [1, 7]),
57
57
  Vedeu::Cells::Char.new(value: 'n', position: [1, 8]),
58
58
  Vedeu::Cells::Char.new(value: ' ', position: [1, 9]),
59
- Vedeu::Views::Char.new(value: '-', position: [1, 10], border: type),
59
+ Vedeu::Cells::TopHorizontal.new(position: [1, 10]),
60
60
  ]
61
61
  }
62
62
 
@@ -35,6 +35,12 @@ module Vedeu
35
35
  # @todo Add more tests.
36
36
  end
37
37
 
38
+ describe '#type' do
39
+ subject { instance.type }
40
+
41
+ it { subject.must_equal(:border) }
42
+ end
43
+
38
44
  describe '#value' do
39
45
  subject { instance.value }
40
46
 
@@ -11,6 +11,12 @@ module Vedeu
11
11
  let(:described) { Vedeu::Cells::Horizontal }
12
12
  let(:instance) { described.new }
13
13
 
14
+ describe '#as_html' do
15
+ subject { instance.as_html }
16
+
17
+ it { subject.must_equal('&#x2500;') }
18
+ end
19
+
14
20
  describe '#text' do
15
21
  subject { instance.text }
16
22
 
@@ -11,6 +11,12 @@ module Vedeu
11
11
  let(:described) { Vedeu::Cells::Vertical }
12
12
  let(:instance) { described.new }
13
13
 
14
+ describe '#as_html' do
15
+ subject { instance.as_html }
16
+
17
+ it { subject.must_equal('&#x2502;') }
18
+ end
19
+
14
20
  describe '#text' do
15
21
  subject { instance.text }
16
22
 
@@ -11,6 +11,12 @@ module Vedeu
11
11
  let(:described) { Vedeu::Cells::BottomLeft }
12
12
  let(:instance) { described.new }
13
13
 
14
+ describe '#as_html' do
15
+ subject { instance.as_html }
16
+
17
+ it { subject.must_equal('&#x2514;') }
18
+ end
19
+
14
20
  describe '#type' do
15
21
  subject { instance.type }
16
22
 
@@ -11,6 +11,12 @@ module Vedeu
11
11
  let(:described) { Vedeu::Cells::BottomRight }
12
12
  let(:instance) { described.new }
13
13
 
14
+ describe '#as_html' do
15
+ subject { instance.as_html }
16
+
17
+ it { subject.must_equal('&#x2518;') }
18
+ end
19
+
14
20
  describe '#type' do
15
21
  subject { instance.type }
16
22
 
@@ -11,6 +11,12 @@ module Vedeu
11
11
  let(:described) { Vedeu::Cells::TopLeft }
12
12
  let(:instance) { described.new }
13
13
 
14
+ describe '#as_html' do
15
+ subject { instance.as_html }
16
+
17
+ it { subject.must_equal('&#x250C;') }
18
+ end
19
+
14
20
  describe '#type' do
15
21
  subject { instance.type }
16
22