アスキーテーブル
ノードのデバッグ用の簡単なテーブル出力ですが、単なる文字列であるため、さらに多くのことができるでしょう。
目次
- 使用法
- 例
- API
- 静的メソッド
- インスタンスメソッド
- setBorder([エッジ], [塗りつぶし], [上], [下])
- 削除ボーダー()
- setAlign(idx, 方向)
- setAlignLeft(idx)
- setAlignCenter(idx)
- setAlignRight(idx)
- setTitle(タイトル)
- getタイトル()
- setTitleAlign(方向)
- setTitleAlignLeft()
- setTitleAlignCenter()
- setTitleAlignRight()
- ソート([イテレータ])
- sortColumn(idx, [イテレータ])
- setHeading(見出し, [...])
- setHeadingAlign(方向)
- setHeadingAlignLeft()
- setHeadingAlignCenter()
- setHeadingAlignRight()
- addRow(行, [...])
- addRowMatrix(行)
- setJustify([有効])
- toString()
- toJSON()
- fromJSON(obj)
- クリア()
- クリア行()
- インストール
- 貢献者
- ライセンス
使用法
Node.js
1var AsciiTable = require('ascii-table')
ブラウザ
1<script src="ascii-table.min.js"></script>
注: ブラウザで使用する場合は、以下に配置されます。window.AsciiTable
例
基本的な使い方
1
2
3
4
5
6
7
8var table = new AsciiTable('A Title')
table
.setHeading('', 'Name', 'Age')
.addRow(1, 'Bob', 52)
.addRow(2, 'John', 34)
.addRow(3, 'Jim', 83)
console.log(table.toString())
1
2
3
4
5
6
7
8
9.----------------.
| A Title |
|----------------|
| | Name | Age |
|---|------|-----|
| 1 | Bob | 52 |
| 2 | John | 34 |
| 3 | Jim | 83 |
'----------------'
タイトルや見出しのないシンプルな表も作成できます。
1
2
3
4
5
6
7
8
9
10var table = new AsciiTable()
table
.addRow('a', 'apple', 'Some longer string')
.addRow('b', 'banana', 'hi')
.addRow('c', 'carrot', 'meow')
.addRow('e', 'elephants')
console.log(table.toString())
1
2
3
4
5
6.------------------------------------.
| a | apple | Some longer string |
| b | banana | hi |
| c | carrot | meow |
| e | elephants | |
'------------------------------------'
API
Static Methods
アスキーテーブル
AsciiTable.factory
インスタンス化の詳細については、次を参照してください。
AsciiTable.factory([タイトル], [オプション])
テーブルインスタンス作成者
title
- テーブルのタイトル (オプション、デフォルトnull
)options
- テーブルオプション(オプション)prefix
- レンダリング時に各行に追加する文字列プレフィックス
注:の代わりにオブジェクトが渡された場合title
、fromJSON
メソッドを使用してテーブルにデータが設定されます。
例:
1
2
3
4
5
6
7
8
9
10var table = AsciiTable.factory('title')
var table = AsciiTable.factory({
title: 'Title'
, heading: [ 'id', 'name' ]
, rows: [
[ 1, 'Bob' ]
, [ 2, 'Steve' ]
]
})
AsciiTable.align(方向、値、長さ、[パッド])
次の 3 つの方法のいずれかへのショートカット
direction
- 整列方向 (AsciiTable.LEFT
、AsciiTable.CENTER
、AsciiTable.RIGHT
)val
- 整列する文字列len
- 作成された文字列の合計長pad
- パディング / 埋め込み文字 (オプション、デフォルト' '
)
例:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.alignLeft(val, len, [パッド])
val
- 整列する文字列len
- 作成された文字列の合計長pad
- パディング / 埋め込み文字 (オプション、デフォルト' '
)
例:
1table.alignLeft('hey', 7, '-') // 'hey----'
AsciiTable.alignCenter(val, len, [パッド])
val
- 整列する文字列len
- 作成された文字列の合計長pad
- パディング / 埋め込み文字 (オプション、デフォルト' '
)
例:
1table.alignCenter('hey', 7) // ' hey '
AsciiTable.alignRight(val, len, [パッド])
val
- 整列する文字列len
- 作成された文字列の合計長pad
- パディング / 埋め込み文字 (オプション、デフォルト' '
)
例:
1table.alignRight('hey', 7) // ' hey'
AsciiTable.alignAuto(val, len, [パッド])
提供された のインテリジェントな位置合わせを試みますval
。String
入力は左揃えになり、Number
型は右揃えになります。
val
- 整列する文字列len
- 作成された文字列の合計長pad
- パディング / 埋め込み文字 (オプション、デフォルト' '
)
例:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.arrayFill(len, [val])
指定された len で新しい配列を作成し、指定された値を入れます。主に内部的に使用されます。
len
- 配列の長さval
- 塗りつぶし値 (オプション)
例:
1AsciiTable.arrayFill(4, 0) // [0, 0, 0, 0]
Instance Methods
instance.setBorder([エッジ], [塗りつぶし], [上], [下])
レンダリング用の境界線文字を設定します。引数が渡されない場合はデフォルトにリセットされます。単一のedge
引数が渡された場合は、それがすべての境界線に使用されます。
edge
- 水平エッジ (オプション、デフォルト|
)fill
-垂直エッジ (オプション、デフォルト-
)top
- 上隅 (オプション、デフォルト.
)bottom
- 下隅 (オプション、デフォルト'
)
例:
1
2
3
4
5
6
7var table = new AsciiTable('Stars')
table
.setBorder('*')
.setHeading('oh', 'look')
.addRow('so much', 'star power')
console.log(table.toString())
1
2
3
4
5
6
7************************
* Stars *
************************
* oh * look *
************************
* so much * star power *
************************
インスタンス.removeBorder()
例:
1
2
3table.removeBorder()
console.log('' + table)
1
2
3
4
5
6 # Fruit Thing
--- ----------- --------------------
a apple Some longer string
b banana hi
c carrot meow
e elephants
インスタンス.setAlign(idx, 方向)
idx
-整列する列インデックスdirection
- 整列方向、(AsciiTable.LEFT
、AsciiTable.CENTER
、AsciiTable.RIGHT
)
例:
1
2
3
4
5table
.setAlign(2, AsciiTable.RIGHT)
.setAlign(1, AsciiTable.CENTER)
console.log(table.toString())
1
2
3
4
5
6.-------------------------------------.
| a | apple | Some longer string |
| b | banana | hi |
| c | carrot | meow |
| e | elephants | |
'-------------------------------------'
インスタンス.setAlignLeft(idx)
別名instance.setAlign(idx, AsciiTable.LEFT)
インスタンス.setAlignCenter(idx)
別名instance.setAlign(idx, AsciiTable.CENTER)
インスタンス.setAlignRight(idx)
別名instance.setAlign(idx, AsciiTable.RIGHT)
インスタンス.setTitle(タイトル)
title
- テーブルのタイトル
例:
1
2
3var table = new AsciiTable('Old Title')
table.setTitle('New Title')
インスタンス.getTitle()
テーブルの現在のタイトルを取得します
例:
1table.getTitle() // 'New Title'
インスタンス.setTitleAlign(方向)
direction
- テーブルの整列方向
例:
1
インスタンス.setTitleAlignLeft()
別名instance.setTitleAlign(AsciiTable.LEFT)
インスタンス.setTitleAlignCenter()
別名instance.setTitleAlign(AsciiTable.CENTER)
インスタンス.setTitleAlignRight()
別名instance.setTitleAlign(AsciiTable.RIGHT)
インスタンス.ソート(イテレータ)
iterator
- 行に対して実行するソートメソッド
例:
1
2
3
4table.sort(function(a, b) {
return a[2] - b[2]
})
console.log(table.toString())
1
2
3
4
5.----------------.
| 2 | John | 34 |
| 1 | Bob | 52 |
| 3 | Jim | 83 |
'----------------'
インスタンス.sortColumn(インデックス、イテレータ)
特定の列をターゲットにする並べ替えショートカット
index
- ソートする列IDXiterator
- 列の値に対して実行するソート方法
例:
1
2
3
4// This is quivalent to the `sort` example above
table.sortColumn(2, function(a, b) {
return a - b
})
instance.setHeading(見出し, [...])
テーブルの列見出しを設定し、次と同じ方法で引数を受け取ります。addRow
heading
- 見出し配列または引数
例:
1
2
3
4
5table.setHeading('ID', 'Key', 'Value')
// or:
table.setHeading(['ID', 'Key', 'Value'])
インスタンス.setHeadingAlign(方向)
direction
-
例:
1
インスタンス.setHeadingAlignLeft()
別名instance.setHeadingAlignLeft(AsciiTable.LEFT)
インスタンス.setHeadingAlignCenter()
別名instance.setHeadingAlignLeft(AsciiTable.CENTER)
インスタンス.setHeadingAlignRight()
別名instance.setHeadingAlignLeft(AsciiTable.RIGHT)
instance.addRow(行, [...])
行は単一の配列引数を使用して追加できます。メソッドの呼び出し時に複数の引数が使用される場合は引数を使用して追加できます。
row
- 列値の配列または引数
例:
1
2
3
4
5
6
7var table = new AsciiTable()
table
.addRow(1, 'Bob', 52)
.addRow([2, 'John', 34])
console.log(table.render())
1
2
3
4.---------------.
| 1 | Bob | 52 |
| 2 | John | 34 |
'---------------'
インスタンス.addRowMatrix(行)
一括addRow
操作
rows
- 行の多次元配列
例:
1
2
3
4table.addRowMatrix([
[2, 'John', 34]
, [3, 'Jim', 83]
])
インスタンス.setJustify(有効)
すべての列を同じ幅になるように揃えます
enabled
- 両端揃えをオンまたはオフにするためのブール値 (undefined
true とみなされます)
例:
1
2
3
4
5table
.addRow('1', 'two', 'three')
.setJustify()
console.log(table.toString())
1
2
3.-----------------------.
| 1 | two | three |
'-----------------------'
インスタンス.toString()
インスタンスを出力用の文字列としてレンダリングします。
別名: [ valueOf
、render
]
インスタンス.toJSON()
テーブルの JSON 表現を返します。これにより、
JSON.stringify
インスタンスを呼び出すこともできます。
例:
1
2
3
4
5
6
7
8
9var table = new AsciiTable('Title')
table
.setHeading('id', 'name')
.addRow(1, 'Bob')
.addRow(2, 'Steve')
console.log(table.toJSON())
console.log(JSON.stringify(table))
1
2
3
4
5
6
7
8{
title: 'Title'
, heading: [ 'id', 'name' ]
, rows: [
[ 1, 'Bob' ]
, [ 2, 'Steve' ]
]
}
1{"title":"Title","heading":["id","name"],"rows":[[1,"Bob"],[2,"Steve"]]}
インスタンス.fromJSON(obj)
json オブジェクトからテーブルにデータを入力します。toJSON
上記の出力と一致する必要があります。
別名: [ parse
]
例:
1
2
3
4
5
6
7
8var table = new AsciiTable().fromJSON({
title: 'Title'
, heading: [ 'id', 'name' ]
, rows: [
[ 1, 'Bob' ]
, [ 2, 'Steve' ]
]
})
インスタンス.クリア()
すべてのテーブルデータをクリア/リセット
別名: [ reset
]
インスタンス.clearRows()
すべての行データをリセットし、タイトルと見出しを維持します。
インストール
npmを使用する場合
1npm install ascii-table
貢献者
ライセンス
(MITライセンス)
著作権 (c) 2013 ボー・ソレンセン
本ソフトウェアおよび関連ドキュメント ファイル (以下「ソフトウェア」) のコピーを入手した人には、使用、コピー、変更、マージする権利を含むがこれらに限定されない、制限なくソフトウェアを取り扱う許可が、ここに無償で与えられます。 、以下の条件を条件として、本ソフトウェアのコピーを出版、配布、サブライセンス、および/または販売すること、および本ソフトウェアが提供される人物にそれを許可すること。
上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは主要部分に含まれるものとします。
ソフトウェアは「現状のまま」で提供され、明示的か黙示的かを問わず、商品性、特定目的への適合性、および非侵害の保証を含むがこれらに限定されない、いかなる種類の保証も行われません。契約行為、不法行為、その他を問わず、ソフトウェアまたはソフトウェアの使用またはその他の取引に起因または関連して生じる請求、損害、またはその他の責任。