class TTY::Box::Border

A class reponsible for retrieving border options

@api private

Constants

BORDER_VALUES

Attributes

bottom[R]
bottom?[R]
bottom_left[R]
bottom_left?[R]
bottom_right[R]
bottom_right?[R]
left[R]
left?[R]
right[R]
right?[R]
top[R]
top?[R]
top_left[R]
top_left?[R]
top_right[R]
top_right?[R]
type[R]

Public Class Methods

new(type: :light, top: :line, top_left: :corner_top_left, top_right: :corner_top_right, left: :pipe, right: :pipe, bottom: :line, bottom_left: :corner_bottom_left, bottom_right: :corner_bottom_right) click to toggle source
# File lib/tty/box/border.rb, line 47
def initialize(type: :light,
               top: :line,
               top_left: :corner_top_left,
               top_right: :corner_top_right,
               left: :pipe,
               right: :pipe,
               bottom: :line,
               bottom_left: :corner_bottom_left,
               bottom_right: :corner_bottom_right)

  @type         = type
  @top          = check_name(:top, top)
  @top_left     = check_name(:top_left, top_left)
  @top_right    = check_name(:top_right, top_right)
  @left         = check_name(:left, left)
  @right        = check_name(:right, right)
  @bottom       = check_name(:bottom, bottom)
  @bottom_left  = check_name(:bottom_left, bottom_left)
  @bottom_right = check_name(:bottom_right, bottom_right)
end
parse(border) click to toggle source
# File lib/tty/box/border.rb, line 23
def self.parse(border)
  case border
  when Hash
    new(**border)
  when *TTY::Box::BOX_CHARS.keys
    new(type: border)
  else
    raise ArgumentError,
          "Wrong value `#{border}` for :border configuration option"
  end
end

Private Instance Methods

check_name(key, value) click to toggle source

Check if border values name is allowed

@raise [ArgumentError]

@api private

# File lib/tty/box/border.rb, line 75
def check_name(key, value)
  unless BORDER_VALUES.include?(:"#{value}") ||
         [true, false].include?(value)
    raise ArgumentError, "invalid #{key.inspect} border value: " \
                        "#{value.inspect}"
  end

  value
end