Class: TTY::Table::Padder

Inherits:
Object
  • Object
show all
Includes:
Equatable
Defined in:
lib/tty/table/padder.rb

Overview

A class responsible for processing table field padding

Instance Attribute Summary collapse

Attributes included from Equatable

#comparison_attrs

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Equatable

#attr_reader, included, #inherited

Constructor Details

#initialize(padding) ⇒ Padder

Initialize a Padder



15
16
17
# File 'lib/tty/table/padder.rb', line 15

def initialize(padding)
  @padding = padding
end

Instance Attribute Details

#paddingObject (readonly)

Returns the value of attribute padding.



10
11
12
# File 'lib/tty/table/padder.rb', line 10

def padding
  @padding
end

Class Method Details

.parse(value = nil) ⇒ TTY::Padder

Parse padding options

Parameters:

  • value (Object) (defaults to: nil)

Returns:

  • (TTY::Padder)


26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/tty/table/padder.rb', line 26

def self.parse(value = nil)
  return value if value.kind_of?(self)

  padding = if value.class <= Numeric
    [value, value, value, value]
  elsif value.nil?
    []
  elsif value.size == 2
    [value[0], value[1], value[0], value[1]]
  elsif value.size == 4
    value
  else
    raise ArgumentError, 'Wrong :padding parameter, must be an array'
  end
  new(padding)
end

Instance Method Details

#bottomInteger

Bottom padding

Returns:

  • (Integer)


84
85
86
# File 'lib/tty/table/padder.rb', line 84

def bottom
  @padding[2].to_i
end

#bottom=(value) ⇒ Object

Set bottom padding

Parameters:

  • value (Integer)


93
94
95
# File 'lib/tty/table/padder.rb', line 93

def bottom=(value)
  @padding[2] = value
end

#empty?Boolean

Check if padding is set

Returns:

  • (Boolean)


118
119
120
# File 'lib/tty/table/padder.rb', line 118

def empty?
  padding.empty?
end

#horizontal?Boolean

Check if horizontal padding is applied

Returns:

  • (Boolean)


136
137
138
# File 'lib/tty/table/padder.rb', line 136

def horizontal?
  left.nonzero? or right.nonzero?
end

#leftInteger

Left padding

Returns:

  • (Integer)


102
103
104
# File 'lib/tty/table/padder.rb', line 102

def left
  @padding[3].to_i
end

#left=(value) ⇒ Object

Set left padding

Parameters:

  • value (Integer)


111
112
113
# File 'lib/tty/table/padder.rb', line 111

def left=(value)
  @padding[3] = value
end

#rightInteger

Right padding

Returns:

  • (Integer)


66
67
68
# File 'lib/tty/table/padder.rb', line 66

def right
  @padding[1].to_i
end

#right=(value) ⇒ Object

Set right padding

Parameters:

  • val (Integer)


75
76
77
# File 'lib/tty/table/padder.rb', line 75

def right=(value)
  @padding[1] = value
end

#topInteger

Top padding

Returns:

  • (Integer)


48
49
50
# File 'lib/tty/table/padder.rb', line 48

def top
  @padding[0].to_i
end

#top=(value) ⇒ Object

Set top padding

Parameters:

  • val (Integer)


57
58
59
# File 'lib/tty/table/padder.rb', line 57

def top=(value)
  @padding[0] = value
end

#vertical?Boolean

Check if vertical padding is applied

Returns:

  • (Boolean)


127
128
129
# File 'lib/tty/table/padder.rb', line 127

def vertical?
  top.nonzero? or bottom.nonzero?
end