Class: Termplot::Renderers::BorderRenderer
- Inherits:
-
Object
- Object
- Termplot::Renderers::BorderRenderer
- Defined in:
- lib/termplot/renderers/border_renderer.rb
Instance Attribute Summary collapse
-
#border_char_map ⇒ Object
readonly
Returns the value of attribute border_char_map.
-
#window ⇒ Object
readonly
Returns the value of attribute window.
Instance Method Summary collapse
-
#initialize(bordered_window:, border_char_map: CharacterMap::DEFAULT) ⇒ BorderRenderer
constructor
A new instance of BorderRenderer.
- #render ⇒ Object
Constructor Details
#initialize(bordered_window:, border_char_map: CharacterMap::DEFAULT) ⇒ BorderRenderer
Returns a new instance of BorderRenderer.
11 12 13 14 15 16 17 18 |
# File 'lib/termplot/renderers/border_renderer.rb', line 11 def initialize( bordered_window:, border_char_map: CharacterMap::DEFAULT ) @window = bordered_window @border_char_map = border_char_map end |
Instance Attribute Details
#border_char_map ⇒ Object (readonly)
Returns the value of attribute border_char_map.
6 7 8 |
# File 'lib/termplot/renderers/border_renderer.rb', line 6 def border_char_map @border_char_map end |
#window ⇒ Object (readonly)
Returns the value of attribute window.
6 7 8 |
# File 'lib/termplot/renderers/border_renderer.rb', line 6 def window @window end |
Instance Method Details
#render ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/termplot/renderers/border_renderer.rb', line 20 def render window.cursor.reset_position # Top Border window.cursor.down(window.border_size.top - 1) window.cursor.forward(window.border_size.left - 1) window.write(border_char_map[:top_left]) window.inner_width.times { window.write(border_char_map[:horz_top]) } window.write(border_char_map[:top_right]) window.cursor.forward(window.border_size.right - 1) # Left and right borders window.inner_height.times do |y| window.cursor.forward(window.border_size.left - 1) window.write(border_char_map[:vert_right]) window.cursor.forward(window.inner_width) window.write(border_char_map[:vert_left]) window.cursor.forward(window.border_size.right - 1) end # Bottom border window.cursor.forward(window.border_size.left - 1) window.write(border_char_map[:bot_left]) window.inner_width.times { window.write(border_char_map[:horz_top]) } window.write(border_char_map[:bot_right]) end |