summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/terminal-table-3.0.2/lib/terminal-table/row.rb
diff options
context:
space:
mode:
authorBenjamin Sanders <ben@Benjamins-MacBook-Pro.local>2025-10-11 10:34:24 -0400
committerBenjamin Sanders <ben@Benjamins-MacBook-Pro.local>2025-10-11 10:34:24 -0400
commit5571dc766e2143e39762ff0b47c41d1c2e154f4c (patch)
treef4f124d314a7e76c04484515aa0fd1f2e271a601 /vendor/bundle/ruby/3.4.0/gems/terminal-table-3.0.2/lib/terminal-table/row.rb
parent359f3309c97fc894b63e0a295c76ab298504d635 (diff)
Vendor bundled gems for deployment
Diffstat (limited to 'vendor/bundle/ruby/3.4.0/gems/terminal-table-3.0.2/lib/terminal-table/row.rb')
-rw-r--r--vendor/bundle/ruby/3.4.0/gems/terminal-table-3.0.2/lib/terminal-table/row.rb66
1 files changed, 66 insertions, 0 deletions
diff --git a/vendor/bundle/ruby/3.4.0/gems/terminal-table-3.0.2/lib/terminal-table/row.rb b/vendor/bundle/ruby/3.4.0/gems/terminal-table-3.0.2/lib/terminal-table/row.rb
new file mode 100644
index 0000000..a549008
--- /dev/null
+++ b/vendor/bundle/ruby/3.4.0/gems/terminal-table-3.0.2/lib/terminal-table/row.rb
@@ -0,0 +1,66 @@
+module Terminal
+ class Table
+ class Row
+
+ ##
+ # Row cells
+
+ attr_reader :cells
+
+ attr_reader :table
+
+ ##
+ # Initialize with _width_ and _options_.
+
+ def initialize table, array = [], **_kwargs
+ @cell_index = 0
+ @table = table
+ @cells = []
+ array.each { |item| self << item }
+ end
+
+ def add_cell item
+ options = item.is_a?(Hash) ? item : {:value => item}
+ cell = Cell.new(options.merge(:index => @cell_index, :table => @table))
+ @cell_index += cell.colspan
+ @cells << cell
+ end
+ alias << add_cell
+
+ def [] index
+ cells[index]
+ end
+
+ def height
+ cells.map { |c| c.lines.count }.max || 0
+ end
+
+ def render
+ vleft, vcenter, vright = @table.style.vertical
+ (0...height).to_a.map do |line|
+ vleft + cells.map do |cell|
+ cell.render(line)
+ end.join(vcenter) + vright
+ end.join("\n")
+ end
+
+ def number_of_columns
+ @cells.collect(&:colspan).inject(0, &:+)
+ end
+
+ # used to find indices where we have table '+' crossings.
+ # in cases where the colspan > 1, then we will skip over some numbers
+ # if colspan is always 1, then the list should be incrementing by 1.
+ #
+ # skip 0 entry, because it's the left side.
+ # skip last entry, because it's the right side.
+ # we only care about "+/T" style crossings.
+ def crossings
+ idx = 0
+ @cells[0...-1].map { |c| idx += c.colspan }
+ end
+
+ end
+
+ end
+end