Sha256: ba4b41d13dbaadb88e0cc940582e4bf75c24cd52af4aac2c3036a0e962ee38b1

Contents?: true

Size: 1.02 KB

Versions: 91

Compression:

Stored size: 1.02 KB

Contents

module Terminal
  class Table
    class Row

      ##
      # Row cells

      attr_reader :cells

      attr_reader :table

      ##
      # Initialize with _width_ and _options_.

      def initialize table, array = []
        @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
        y = @table.style.border_y
        (0...height).to_a.map do |line|
          y + cells.map do |cell|
            cell.render(line)
          end.join(y) + y
        end.join("\n")
      end

      def number_of_columns
        @cells.collect(&:colspan).inject(0, &:+)
      end
    end
  end
end

Version data entries

91 entries across 77 versions & 5 rubygems

Version Path
brakeman-6.2.2 bundle/ruby/3.1.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-6.2.2.rc1 bundle/ruby/3.3.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-6.2.1 bundle/ruby/3.1.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-6.2.0 bundle/ruby/3.1.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-6.1.2 bundle/ruby/3.3.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-6.1.1 bundle/ruby/3.0.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-6.1.0 bundle/ruby/3.1.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-6.0.1 bundle/ruby/3.1.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-6.0.0 bundle/ruby/3.0.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-5.4.1 bundle/ruby/3.1.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-5.4.0 bundle/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-5.3.1 bundle/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-5.3.0 bundle/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-5.2.3 bundle/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-5.2.2 bundle/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-5.2.1 bundle/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-5.2.0 bundle/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-5.1.2 bundle/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-5.1.1 bundle/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb
brakeman-5.1.0 bundle/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/row.rb