terminal-table

Ruby ASCII Table Generator, simple and feature rich.

  • 所有者: tj/terminal-table
  • 平台:
  • 许可证: MIT License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

Circle CI

= Terminal Table

== Description

Terminal Table is a fast and simple, yet feature rich ASCII table generator written in Ruby.

== Installation

$ gem install terminal-table

== Usage

=== Basics

To use Terminal Table:

require 'terminal-table'

To generate a table, provide an array of arrays (which are interpreted as rows):

rows = []
rows << ['One', 1]
rows << ['Two', 2]
rows << ['Three', 3]
table = Terminal::Table.new :rows => rows

> puts table

+-------+---+

#, One, 1, #, Two, 2, #, Three, 3, # +-------+---+

The constructor can also be given a block which is either yielded the Table object or instance evaluated:

table = Terminal::Table.new do, t, t.rows = rows
end

table = Terminal::Table.new do
self.rows = rows
end

Adding rows one by one:

table = Terminal::Table.new do, t, t << ['One', 1]
t.add_row ['Two', 2]
end

To add separators between rows:

table = Terminal::Table.new do, t, t << ['One', 1]
t << :separator
t.add_row ['Two', 2]
t.add_separator
t.add_row ['Three', 3]
end

> puts table

+-------+---+

#, One, 1, # +-------+---+
#, Two, 2, # +-------+---+
#, Three, 3, # +-------+---+

Cells can handle multiline content:

table = Terminal::Table.new do, t, t << ['One', 1]
t << :separator
t.add_row ["Two\nDouble", 2]
t.add_separator
t.add_row ['Three', 3]
end

> puts table

+--------+---+

#, One, 1, # +--------+---+
#, Two, 2, #, Double, # +--------+---+
#, Three, 3, # +--------+---+

=== Head

To add a head to the table:

table = Terminal::Table.new :headings => ['Word', 'Number'], :rows => rows

> puts table

+-------+--------+

#, Word, Number, # +-------+--------+
#, One, 1, #, Two, 2, #, Three, 3, # +-------+--------+

=== Title

To add a title to the table:

table = Terminal::Table.new :title => "Cheatsheet", :headings => ['Word', 'Number'], :rows => rows

> puts table

+------------+--------+

#, Cheatsheet, # +------------+--------+
#, Word, Number, # +------------+--------+
#, One, 1, #, Two, 2, #, Three, 3, # +------------+--------+

=== Alignment

To align the second column to the right:

table.align_column(1, :right)

> puts table

+-------+--------+

#, Word, Number, # +-------+--------+
#, One, 1, #, Two, 2, #, Three, 3, # +-------+--------+

To align an individual cell, you specify the cell value in a hash along the alignment:

table << ["Four", {:value => 4.0, :alignment => :center}]

> puts table

+-------+--------+

#, Word, Number, # +-------+--------+
#, One, 1, #, Two, 2, #, Three, 3, #, Four, 4.0, # +-------+--------+

=== Style

To specify style options:

table = Terminal::Table.new :headings => ['Word', 'Number'], :rows => rows, :style => {:width => 80}

> puts table

+--------------------------------------+---------------------------------------+

#, Word, Number, # +--------------------------------------+---------------------------------------+
#, One, 1, #, Two, 2, #, Three, 3, # +--------------------------------------+---------------------------------------+

And change styles on the fly:

table.style = {:width => 40, :padding_left => 3, :border_x => "=", :border_i => "x"}

> puts table

x====================x=================x

#, Cheatsheet, # x====================x=================x
#, Word, Number, # x====================x=================x
#, One, 1, #, Two, 2, #, Three, 3, # x====================x=================x

You can also use styles to add a separator after every row:

table = Terminal::Table.new do, t, t.add_row [1, 'One']
t.add_row [2, 'Two']
t.add_row [3, 'Three']
t.style = {:all_separators => true}
end

> puts table

+---+-------+

#, 1, One, # +---+-------+
#, 2, Two, # +---+-------+
#, 3, Three, # +---+-------+

You can also use styles to disable top and bottom borders of the table

table = Terminal::Table.new do, t, t.headings = ['id', 'name']
t.rows = [[1, 'One'], [2, 'Two'], [3, 'Three']]
t.style = { :border_top => false, :border_bottom => false }
end

> puts table

#, id, name, # +----+-------+
#, 1, One, #, 2, Two, #, 3, Three, To change the default style options:

Terminal::Table::Style.defaults = {:width => 80}

All Table objects created afterwards will inherit these defaults.

=== Constructor options and setter methods

Valid options for the constructor are :rows, :headings, :style and :title - and all options can also be set on the created table object by their setter method:

table = Terminal::Table.new
table.title = "Cheatsheet"
table.headings = ['Word', 'Number']
table.rows = rows
table.style = {:width => 40}

== More examples

For more examples, please see the examples/examples.rb file included in the source distribution.

== Author

TJ Holowaychuk tj@vision-media.ca

主要指标

概览
名称与所有者tj/terminal-table
主编程语言Ruby
编程语言Ruby (语言数: 1)
平台
许可证MIT License
所有者活动
创建于2009-01-07 23:43:22
推送于2025-01-27 21:53:18
最后一次提交2025-01-28 06:53:02
发布数27
最新版本名称v4.0.0 (发布于 2025-01-28 06:53:15)
第一版名称1.0.0 (发布于 )
用户参与
星数1.6k
关注者数24
派生数124
提交数299
已启用问题?
问题数65
打开的问题数1
拉请求数59
打开的拉请求数0
关闭的拉请求数15
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?