Class: Vedeu::Borders::Refresh Private

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Common
Defined in:
lib/vedeu/borders/refresh.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Renders and refreshes the named border.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name = Vedeu.focus) ⇒ Vedeu::Borders::Refresh

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Vedeu::Borders::Refresh.

Parameters:

  • name (String|Symbol) (defaults to: Vedeu.focus)

    The name of the interface/view border to be refreshed. Defaults to ‘Vedeu.focus`.



68
69
70
# File 'lib/vedeu/borders/refresh.rb', line 68

def initialize(name = Vedeu.focus)
  @name = present?(name) ? name : Vedeu.focus
end

Instance Attribute Details

#nameString|Symbol (readonly, protected)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (String|Symbol)


82
83
84
# File 'lib/vedeu/borders/refresh.rb', line 82

def name
  @name
end

Class Method Details

.by_name(name = Vedeu.focus) ⇒ Array<Array<Vedeu::Cells::Char>>

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • name (String|Symbol) (defaults to: Vedeu.focus)

    The name of the interface/view border to be refreshed. Defaults to ‘Vedeu.focus`.

Returns:



57
58
59
60
61
# File 'lib/vedeu/borders/refresh.rb', line 57

def self.by_name(name = Vedeu.focus)
  name || Vedeu.focus

  new(name).by_name
end

Instance Method Details

#absent?(variable) ⇒ Boolean Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a boolean indicating whether a variable is nil or empty.

Parameters:

  • variable (String|Symbol|Array|Fixnum)

    The variable to check.

Returns:

#attributesHash<Symbol => void> (private)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Hash<Symbol => void>)


87
88
89
90
91
92
93
# File 'lib/vedeu/borders/refresh.rb', line 87

def attributes
  {
    colour: colour,
    name:   name,
    style:  style,
  }
end

#become(klass, attributes) ⇒ Class Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Converts one class into another.

Parameters:

  • klass (Class)

    The class to become an instance of.

  • attributes (Hash)

    The attributes of klass.

Returns:

  • (Class)

    Returns a new instance of klass.

#boolean(value) ⇒ Boolean Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a boolean indicating the value was a boolean.

Parameters:

  • value (void)

Returns:

#boolean?(value) ⇒ Boolean Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a boolean indicating whether the value is a Boolean.

Parameters:

Returns:

#borderObject (private)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns the border for the interface.



98
99
100
# File 'lib/vedeu/borders/refresh.rb', line 98

def border
  @border ||= Vedeu.borders.by_name(name)
end

#bottomString (private)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Note:

If a caption has been specified, then the bottom border will include this caption unless the size of the interface is smaller than the padded caption length.

Renders the bottom border for the interface.

Returns:

  • (String)


122
123
124
# File 'lib/vedeu/borders/refresh.rb', line 122

def bottom
  [(bottom_left if left?), captionbar, (bottom_right if right?)].compact
end

#build_collection(size, &block) ⇒ Array<void> (private)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Build a collection with the given size of objects given within the block.

Parameters:

  • size (Fixnum)
  • block (Proc)

Returns:

  • (Array<void>)


214
215
216
# File 'lib/vedeu/borders/refresh.rb', line 214

def build_collection(size, &block)
  Array.new(size) { |e| yield(e) }
end

#by_nameArray<Array<Vedeu::Cells::Char>> Also known as: render

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:



73
74
75
# File 'lib/vedeu/borders/refresh.rb', line 73

def by_name
  Vedeu.render_output(output) if enabled? && visible?
end

#captionbarObject (private)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

An optional caption for when the bottom border is to be shown.



181
182
183
184
185
186
187
188
189
190
191
# File 'lib/vedeu/borders/refresh.rb', line 181

def captionbar
  characters = build_collection(bordered_width) do |ix|
    cell = bottom_horizontal.dup
    cell.position = [yn, bx + ix]
    cell
  end

  return characters unless present?(caption)

  Vedeu::Borders::Caption.render(name, caption, characters)
end

#escape?(value) ⇒ Boolean Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a boolean indicating whether the value is an escape sequence object (e.g. Vedeu::Cells::Escape.)

Returns:

#falsy?(value) ⇒ Boolean Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a boolean indicating whether the value should be considered false.

Parameters:

  • value (void)

Returns:

#geometryObject (private)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns the geometry for the interface.



129
130
131
# File 'lib/vedeu/borders/refresh.rb', line 129

def geometry
  Vedeu.geometries.by_name(name)
end

#hash?(value) ⇒ Boolean Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a boolean indicating whether the value is a Hash.

Parameters:

  • value (Hash|void)

Returns:

#interfaceObject (private) Also known as: parent

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Note:

The parent of a border is always an interface.

Returns the interface by name.



139
140
141
# File 'lib/vedeu/borders/refresh.rb', line 139

def interface
  @interface ||= Vedeu.interfaces.by_name(name)
end

#leftArray<void> (private)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Renders the left border for the interface.

Returns:

  • (Array<void>)


147
148
149
150
151
152
153
# File 'lib/vedeu/borders/refresh.rb', line 147

def left
  build_collection(bordered_height) do |iy|
    cell = left_vertical.dup
    cell.position = [by + iy, x]
    cell
  end
end

#line_model?Boolean Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a boolean indicating the model is a Views::Line.

Returns:

#numeric?(value) ⇒ Boolean Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a boolean indicating whether the value is a Fixnum.

Parameters:

  • value (Fixnum|void)

Returns:

#outputArray<Array<Vedeu::Cells::Char>> (private)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:



103
104
105
106
107
108
109
110
111
112
# File 'lib/vedeu/borders/refresh.rb', line 103

def output
  Vedeu.timer("Drawing border: '#{name}'") do
    [
      (top if top?),
      (left if left?),
      (right if right?),
      (bottom if bottom?),
    ].flatten
  end
end

#present?(variable) ⇒ Boolean Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a boolean indicating whether a variable has a useful value.

Parameters:

  • variable (String|Symbol|Array|Fixnum)

    The variable to check.

Returns:

#rightArray<void> (private)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Renders the right border for the interface.

Returns:

  • (Array<void>)


158
159
160
161
162
163
164
# File 'lib/vedeu/borders/refresh.rb', line 158

def right
  build_collection(bordered_height) do |iy|
    cell = right_vertical.dup
    cell.position = [by + iy, xn]
    cell
  end
end

#snake_case(klass) ⇒ String Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Converts a class name to a lowercase snake case string.

Examples:

snake_case(MyClassName) # => "my_class_name"
snake_case(NameSpaced::ClassName)
# => "name_spaced/class_name"

snake_case('MyClassName') # => "my_class_name"
snake_case(NameSpaced::ClassName)
# => "name_spaced/class_name"

Parameters:

  • klass (Module|Class|String)

Returns:

  • (String)

#stream_model?Boolean Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a boolean indicating the model is a Views::Stream.

Returns:

#string?(value) ⇒ Boolean Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a boolean indicating whether the value is a Fixnum.

Parameters:

  • value (String|void)

Returns:

#titlebarArray<Vedeu::Cells::Horizontal|Vedeu::Cells::Char> (private)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

An optional title for when the top border is to be shown.



196
197
198
199
200
201
202
203
204
205
206
# File 'lib/vedeu/borders/refresh.rb', line 196

def titlebar
  characters = build_collection(bordered_width) do |ix|
    cell = top_horizontal.dup
    cell.position = [y, bx + ix]
    cell
  end

  return characters unless present?(title)

  Vedeu::Borders::Title.render(name, title, characters)
end

#topString (private)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Note:

If a title has been specified, then the top border will include this title unless the size of the interface is smaller than the padded title length.

Renders the top border for the interface.

Returns:

  • (String)


174
175
176
# File 'lib/vedeu/borders/refresh.rb', line 174

def top
  [(top_left if left?), titlebar, (top_right if right?)].compact
end

#truthy?(value) ⇒ Boolean Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a boolean indicating whether the value should be considered true.

Parameters:

  • value (void)

Returns:

#view_model?Boolean Originally defined in module Common

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a boolean indicating the model is a Views::View.

Returns: