terminal-table 1.4.5 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/spec/table_spec.rb CHANGED
@@ -1,12 +1,12 @@
1
1
 
2
- require File.dirname(__FILE__) + '/spec_helper'
2
+ require 'spec_helper'
3
3
 
4
4
  module Terminal
5
5
  describe Table do
6
6
  before :each do
7
7
  @table = Table.new
8
8
  end
9
-
9
+
10
10
  it "should select columns" do
11
11
  @table << ['foo', 'bar']
12
12
  @table << ['big foo', 'big foo bar']
@@ -137,6 +137,25 @@ module Terminal
137
137
  EOF
138
138
  end
139
139
 
140
+
141
+ it "should render default alignment properly" do
142
+ @table.headings = ['Char', 'Num']
143
+ @table << ['a', 1]
144
+ @table << ['b', 2]
145
+ @table << ['c', 3]
146
+ @table.style.width = 21
147
+ @table.style.alignment = :right
148
+ @table.render.should == <<-EOF.deindent
149
+ +---------+---------+
150
+ | Char | Num |
151
+ +---------+---------+
152
+ | a | 1 |
153
+ | b | 2 |
154
+ | c | 3 |
155
+ +---------+---------+
156
+ EOF
157
+ end
158
+
140
159
  it "should render width properly" do
141
160
  @table.headings = ['Char', 'Num']
142
161
  @table << ['a', 1]
@@ -154,6 +173,16 @@ module Terminal
154
173
  EOF
155
174
  end
156
175
 
176
+ it "should raise an error if the table width exceeds style width" do
177
+ @table.headings = ['Char', 'Num']
178
+ @table << ['a', 1]
179
+ @table << ['b', 2]
180
+ @table << ['c', 3]
181
+ @table << ['d', 'x' * 22]
182
+ @table.style.width = 21
183
+ expect { @table.render }.to raise_error "Table width exceeds wanted width of 21 characters."
184
+ end
185
+
157
186
  it "should render title properly" do
158
187
  @table.title = "Title"
159
188
  @table.headings = ['Char', 'Num']
@@ -254,6 +283,24 @@ module Terminal
254
283
  EOF
255
284
  end
256
285
 
286
+ it "should render multi-row headings properly" do
287
+ @table.headings = [['Char', 'Num'], [{ :value => "2nd heading", :colspan => 2 }]]
288
+ @table << ['a', 1]
289
+ @table << ['b', 2]
290
+ @table << ['c', 3]
291
+ @table.render.should == <<-EOF.deindent
292
+ +------+------+
293
+ | Char | Num |
294
+ +------+------+
295
+ | 2nd heading |
296
+ +------+------+
297
+ | a | 1 |
298
+ | b | 2 |
299
+ | c | 3 |
300
+ +------+------+
301
+ EOF
302
+ end
303
+
257
304
  it "should allows a hash of options for creation" do
258
305
  headings = ['Char', 'Num']
259
306
  rows = [['a', 1], ['b', 2], ['c', 3]]
@@ -324,7 +371,7 @@ module Terminal
324
371
  # it "should be equal with two empty tables" do
325
372
  # table_one = Table.new
326
373
  # table_two = Table.new
327
- #
374
+ #
328
375
  # table_one.should == table_two
329
376
  # table_two.should == table_one
330
377
  # end
@@ -448,7 +495,7 @@ module Terminal
448
495
  @table.headings = ['name', { :value => 'values', :alignment => :right, :colspan => 3}]
449
496
  @table.headings = ['name', { :value => 'values', :colspan => 3}]
450
497
  @table.rows = [['a', 1, 2, 3], ['b', 4, 5, 6], ['c', 7, 8, 9]]
451
-
498
+
452
499
  @table.render.should == <<-EOF.deindent
453
500
  +------+---+---+---+
454
501
  | name | values |
@@ -459,7 +506,7 @@ module Terminal
459
506
  +------+---+---+---+
460
507
  EOF
461
508
  end
462
-
509
+
463
510
  it "should handle multiple colspan" do
464
511
  @table.headings = [
465
512
  'name',
@@ -486,7 +533,7 @@ module Terminal
486
533
  +--------+----+----+-------+-------+-----+-----+
487
534
  EOF
488
535
  end
489
-
536
+
490
537
  it "should render a table with only X cell borders" do
491
538
  @table.style = {:border_x => "-", :border_y => "", :border_i => ""}
492
539
 
@@ -504,7 +551,7 @@ module Terminal
504
551
  ---------------
505
552
  EOF
506
553
  end
507
-
554
+
508
555
  it "should render a table without cell borders" do
509
556
  @table.style = {:border_x => "", :border_y => "", :border_i => ""}
510
557
 
data/tasks/docs.rake CHANGED
@@ -1,13 +1,13 @@
1
-
2
- namespace :docs do
3
-
4
- desc 'Remove rdoc products'
5
- task :remove => [:clobber_docs]
6
-
7
- desc 'Build docs, and open in browser for viewing (specify BROWSER)'
8
- task :open => [:docs] do
9
- browser = ENV["BROWSER"] || "safari"
10
- sh "open -a #{browser} doc/index.html"
11
- end
12
-
1
+
2
+ namespace :docs do
3
+
4
+ desc 'Remove rdoc products'
5
+ task :remove => [:clobber_docs]
6
+
7
+ desc 'Build docs, and open in browser for viewing (specify BROWSER)'
8
+ task :open => [:docs] do
9
+ browser = ENV["BROWSER"] || "safari"
10
+ sh "open -a #{browser} doc/index.html"
11
+ end
12
+
13
13
  end
data/tasks/gemspec.rake CHANGED
@@ -1,3 +1,3 @@
1
-
2
- desc 'Build gemspec file'
1
+
2
+ desc 'Build gemspec file'
3
3
  task :gemspec => [:build_gemspec]
data/tasks/spec.rake CHANGED
@@ -1,25 +1,25 @@
1
-
2
- require 'spec/rake/spectask'
3
-
4
- desc "Run all specifications"
5
- Spec::Rake::SpecTask.new(:spec) do |t|
6
- t.libs << "lib"
7
- t.spec_opts = ["--color", "--require", "spec/spec_helper.rb"]
8
- end
9
-
10
- namespace :spec do
11
-
12
- desc "Run all specifications verbosely"
13
- Spec::Rake::SpecTask.new(:verbose) do |t|
14
- t.libs << "lib"
15
- t.spec_opts = ["--color", "--format", "specdoc", "--require", "spec/spec_helper.rb"]
16
- end
17
-
18
- desc "Run specific specification verbosely (specify SPEC)"
19
- Spec::Rake::SpecTask.new(:select) do |t|
20
- t.libs << "lib"
21
- t.spec_files = [ENV["SPEC"]]
22
- t.spec_opts = ["--color", "--format", "specdoc", "--require", "spec/spec_helper.rb"]
23
- end
24
-
1
+
2
+ require 'spec/rake/spectask'
3
+
4
+ desc "Run all specifications"
5
+ Spec::Rake::SpecTask.new(:spec) do |t|
6
+ t.libs << "lib"
7
+ t.spec_opts = ["--color", "--require", "spec/spec_helper.rb"]
8
+ end
9
+
10
+ namespace :spec do
11
+
12
+ desc "Run all specifications verbosely"
13
+ Spec::Rake::SpecTask.new(:verbose) do |t|
14
+ t.libs << "lib"
15
+ t.spec_opts = ["--color", "--format", "specdoc", "--require", "spec/spec_helper.rb"]
16
+ end
17
+
18
+ desc "Run specific specification verbosely (specify SPEC)"
19
+ Spec::Rake::SpecTask.new(:select) do |t|
20
+ t.libs << "lib"
21
+ t.spec_files = [ENV["SPEC"]]
22
+ t.spec_opts = ["--color", "--format", "specdoc", "--require", "spec/spec_helper.rb"]
23
+ end
24
+
25
25
  end
@@ -2,23 +2,24 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{terminal-table}
5
- s.version = "1.4.5"
5
+ s.version = "1.5.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["TJ Holowaychuk", "Scott J. Goldman"]
9
- s.date = %q{2012-3-15}
9
+ s.date = %q{2011-10-13}
10
10
  s.description = %q{Simple, feature rich ascii table generation library}
11
11
  s.email = %q{tj@vision-media.ca}
12
- s.extra_rdoc_files = ["README.rdoc", "lib/terminal-table.rb", "lib/terminal-table/cell.rb", "lib/terminal-table/core_ext.rb", "lib/terminal-table/import.rb", "lib/terminal-table/table.rb", "lib/terminal-table/version.rb", "lib/terminal-table/row.rb", "lib/terminal-table/separator.rb", "lib/terminal-table/style.rb", "lib/terminal-table/table_helper.rb", "lib/terminal-table/version.rb", "tasks/docs.rake", "tasks/gemspec.rake", "tasks/spec.rake"]
13
- s.files = ["History.rdoc", "Manifest", "README.rdoc", "Rakefile", "Todo.rdoc", "examples/examples.rb", "lib/terminal-table.rb", "lib/terminal-table/cell.rb", "lib/terminal-table/core_ext.rb", "lib/terminal-table/import.rb", "lib/terminal-table/table.rb", "lib/terminal-table/table_helper.rb", "lib/terminal-table/version.rb", "lib/terminal-table/row.rb", "lib/terminal-table/separator.rb", "lib/terminal-table/style.rb", "spec/cell_spec.rb", "spec/core_ext_spec.rb", "spec/import_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "spec/table_spec.rb", "tasks/docs.rake", "tasks/gemspec.rake", "tasks/spec.rake", "terminal-table.gemspec"]
12
+ s.extra_rdoc_files = ["README.rdoc", "lib/terminal-table.rb", "lib/terminal-table/cell.rb", "lib/terminal-table/import.rb", "lib/terminal-table/table.rb", "lib/terminal-table/table_helper.rb", "lib/terminal-table/version.rb", "tasks/docs.rake", "tasks/gemspec.rake", "tasks/spec.rake"]
13
+ s.files = ["History.rdoc", "Manifest", "README.rdoc", "Rakefile", "Todo.rdoc", "examples/examples.rb", "lib/terminal-table.rb", "lib/terminal-table/cell.rb", "lib/terminal-table/import.rb", "lib/terminal-table/table.rb", "lib/terminal-table/table_helper.rb", "lib/terminal-table/version.rb", "spec/cell_spec.rb", "spec/import_spec.rb", "spec/spec_helper.rb", "spec/table_spec.rb", "tasks/docs.rake", "tasks/gemspec.rake", "tasks/spec.rake", "terminal-table.gemspec"]
14
14
  s.homepage = %q{http://github.com/visionmedia/terminal-table}
15
+ s.license = %q{MIT}
15
16
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Terminal-table", "--main", "README.rdoc"]
16
17
  s.require_paths = ["lib"]
17
18
  s.rubyforge_project = %q{terminal-table}
18
19
  s.rubygems_version = %q{1.3.5}
19
20
  s.summary = %q{Simple, feature rich ascii table generation library}
20
21
 
21
- if s.respond_to? :specification_version= then
22
+ if s.respond_to? :specification_version then
22
23
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
24
  s.specification_version = 3
24
25
 
metadata CHANGED
@@ -1,35 +1,32 @@
1
- --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
1
+ --- !ruby/object:Gem::Specification
4
2
  name: terminal-table
5
- version: !ruby/object:Gem::Version
6
- version: 1.4.5
7
- date: 2012-03-15 00:00:00 +00:00
8
- summary: Simple, feature rich ascii table generation library
9
- require_paths:
10
- - lib
11
- email: tj@vision-media.ca
12
- homepage: http://github.com/visionmedia/terminal-table
13
- rubyforge_project: terminal-table
14
- description: Simple, feature rich ascii table generation library
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: false
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.5.0
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
- authors:
6
+ authors:
30
7
  - TJ Holowaychuk
31
8
  - Scott J. Goldman
32
- files:
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-13 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Simple, feature rich ascii table generation library
15
+ email: tj@vision-media.ca
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files:
19
+ - README.rdoc
20
+ - lib/terminal-table.rb
21
+ - lib/terminal-table/cell.rb
22
+ - lib/terminal-table/import.rb
23
+ - lib/terminal-table/table.rb
24
+ - lib/terminal-table/table_helper.rb
25
+ - lib/terminal-table/version.rb
26
+ - tasks/docs.rake
27
+ - tasks/gemspec.rake
28
+ - tasks/spec.rake
29
+ files:
33
30
  - History.rdoc
34
31
  - Manifest
35
32
  - README.rdoc
@@ -38,53 +35,46 @@ files:
38
35
  - examples/examples.rb
39
36
  - lib/terminal-table.rb
40
37
  - lib/terminal-table/cell.rb
41
- - lib/terminal-table/core_ext.rb
42
38
  - lib/terminal-table/import.rb
43
39
  - lib/terminal-table/table.rb
44
40
  - lib/terminal-table/table_helper.rb
45
41
  - lib/terminal-table/version.rb
46
- - lib/terminal-table/row.rb
47
- - lib/terminal-table/separator.rb
48
- - lib/terminal-table/style.rb
49
42
  - spec/cell_spec.rb
50
- - spec/core_ext_spec.rb
51
43
  - spec/import_spec.rb
52
- - spec/spec.opts
53
44
  - spec/spec_helper.rb
54
45
  - spec/table_spec.rb
55
46
  - tasks/docs.rake
56
47
  - tasks/gemspec.rake
57
48
  - tasks/spec.rake
58
49
  - terminal-table.gemspec
59
- test_files: []
60
-
61
- rdoc_options:
62
- - --line-numbers
63
- - --inline-source
64
- - --title
50
+ homepage: http://github.com/visionmedia/terminal-table
51
+ licenses:
52
+ - MIT
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options:
56
+ - "--line-numbers"
57
+ - "--inline-source"
58
+ - "--title"
65
59
  - Terminal-table
66
- - --main
60
+ - "--main"
67
61
  - README.rdoc
68
- extra_rdoc_files:
69
- - README.rdoc
70
- - lib/terminal-table.rb
71
- - lib/terminal-table/cell.rb
72
- - lib/terminal-table/core_ext.rb
73
- - lib/terminal-table/import.rb
74
- - lib/terminal-table/table.rb
75
- - lib/terminal-table/version.rb
76
- - lib/terminal-table/row.rb
77
- - lib/terminal-table/separator.rb
78
- - lib/terminal-table/style.rb
79
- - lib/terminal-table/table_helper.rb
80
- - tasks/docs.rake
81
- - tasks/gemspec.rake
82
- - tasks/spec.rake
83
- executables: []
84
-
85
- extensions: []
86
-
62
+ require_paths:
63
+ - lib
64
+ required_ruby_version: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ required_rubygems_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '1.2'
87
74
  requirements: []
88
-
89
- dependencies: []
90
-
75
+ rubyforge_project: terminal-table
76
+ rubygems_version: 2.4.8
77
+ signing_key:
78
+ specification_version: 3
79
+ summary: Simple, feature rich ascii table generation library
80
+ test_files: []
@@ -1,8 +0,0 @@
1
-
2
- class String
3
- def align position, length
4
- self.__send__ position, length
5
- end
6
- alias_method :left, :ljust
7
- alias_method :right, :rjust
8
- end
@@ -1,48 +0,0 @@
1
- module Terminal
2
- class Table
3
- class Row
4
-
5
- ##
6
- # Row cells
7
-
8
- attr_reader :cells
9
-
10
- attr_reader :table
11
-
12
- ##
13
- # Initialize with _width_ and _options_.
14
-
15
- def initialize table, array = []
16
- @cell_index = 0
17
- @table = table
18
- @cells = []
19
- array.each { |item| self << item }
20
- end
21
-
22
- def add_cell item
23
- options = item.is_a?(Hash) ? item : {:value => item}
24
- cell = Cell.new(options.merge(:index => @cell_index, :table => @table))
25
- @cell_index += cell.colspan
26
- @cells << cell
27
- end
28
- alias << add_cell
29
-
30
- def [] index
31
- cells[index]
32
- end
33
-
34
- def height
35
- cells.map { |c| c.lines.count }.max
36
- end
37
-
38
- def render
39
- y = @table.style.border_y
40
- (0...height).to_a.map do |line|
41
- y + cells.map do |cell|
42
- cell.render(line)
43
- end.join(y) + y
44
- end.join("\n")
45
- end
46
- end
47
- end
48
- end
@@ -1,14 +0,0 @@
1
- module Terminal
2
- class Table
3
- class Separator < Row
4
-
5
- def render
6
- arr_x = (0...@table.number_of_columns).to_a.map do |i|
7
- @table.style.border_x * (@table.column_width(i) + @table.cell_padding)
8
- end
9
- border_i = @table.style.border_i
10
- border_i + arr_x.join(border_i) + border_i
11
- end
12
- end
13
- end
14
- end