terminal-table 1.4.4 → 1.4.5

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.
@@ -1,7 +1,8 @@
1
- 1.4.4 / 2011-11-07
1
+ 1.4.5 / 2012-3-15
2
2
  ==================
3
3
 
4
- * Add support for multi-line rows, table titles, and colors
4
+ * Add color support.
5
+ * Various bugfixes
5
6
 
6
7
  1.4.3 / 2011-10-13
7
8
  ==================
@@ -58,7 +58,8 @@ module Terminal
58
58
  def render(line = 0)
59
59
  left = " " * @table.style.padding_left
60
60
  right = " " * @table.style.padding_right
61
- "#{left}#{lines[line]}#{right}".align(alignment, width + @table.cell_padding)
61
+ render_width = lines[line].to_s.size - escape(lines[line]).size + width
62
+ "#{left}#{lines[line]}#{right}".align(alignment, render_width + @table.cell_padding)
62
63
  end
63
64
  alias :to_s :render
64
65
 
@@ -67,10 +68,7 @@ module Terminal
67
68
  # removes all ANSI escape sequences (e.g. color)
68
69
 
69
70
  def value_for_column_width_recalc
70
- str = lines.sort_by { |s| s.size }.last.to_s
71
- str = str.gsub(/\x1b(\[|\(|\))[;?0-9]*[0-9A-Za-z]/, '')
72
- str = str.gsub(/\x1b(\[|\(|\))[;?0-9]*[0-9A-Za-z]/, '')
73
- str.gsub(/[\x03|\x1a]/, '')
71
+ lines.map{ |s| escape(s) }.max_by{ |s| s.size }
74
72
  end
75
73
 
76
74
  ##
@@ -83,6 +81,14 @@ module Terminal
83
81
  end
84
82
  inner_width + padding
85
83
  end
84
+
85
+ ##
86
+ # removes all ANSI escape sequences (e.g. color)
87
+ def escape(line)
88
+ line.to_s.gsub(/\x1b(\[|\(|\))[;?0-9]*[0-9A-Za-z]/, '').
89
+ gsub(/\x1b(\[|\(|\))[;?0-9]*[0-9A-Za-z]/, '').
90
+ gsub(/[\x03|\x1a]/, '')
91
+ end
86
92
  end
87
93
  end
88
- end
94
+ end
@@ -11,9 +11,9 @@ module Terminal
11
11
  def initialize options = {}, &block
12
12
  @column_widths = []
13
13
  self.style = options.fetch :style, {}
14
- self.title = options.fetch :title, nil
15
14
  self.headings = options.fetch :headings, []
16
15
  self.rows = options.fetch :rows, []
16
+ self.title = options.fetch :title, nil
17
17
  yield_or_eval(&block) if block
18
18
  end
19
19
 
@@ -108,8 +108,7 @@ module Terminal
108
108
  separator = Separator.new(self)
109
109
  buffer = [separator]
110
110
  unless @title.nil?
111
- opts = {:value => @title, :alignment => :center, :colspan => number_of_columns}
112
- buffer << Row.new(self, [opts])
111
+ buffer << Row.new(self, [title_cell_options])
113
112
  buffer << separator
114
113
  end
115
114
  unless @headings.cells.empty?
@@ -144,7 +143,7 @@ module Terminal
144
143
 
145
144
  def title=(title)
146
145
  @title = title
147
- recalc_column_widths Row.new(self, [title])
146
+ recalc_column_widths Row.new(self, [title_cell_options])
148
147
  end
149
148
 
150
149
  ##
@@ -213,5 +212,9 @@ module Terminal
213
212
  self.instance_eval(&block)
214
213
  end
215
214
  end
215
+
216
+ def title_cell_options
217
+ {:value => @title, :alignment => :center, :colspan => number_of_columns}
218
+ end
216
219
  end
217
220
  end
@@ -1,6 +1,6 @@
1
1
 
2
2
  module Terminal
3
3
  class Table
4
- VERSION = '1.4.4'
4
+ VERSION = '1.4.5'
5
5
  end
6
6
  end
@@ -29,11 +29,11 @@ describe Terminal::Table do
29
29
  end
30
30
 
31
31
  it "should allow multiline content" do
32
- cell = Cell.new :value => "foo\nbarrissimo", :table => Terminal::Table.new, :index => 0
33
- cell.value.should == "foo\nbarrissimo"
34
- cell.lines.should == ['foo', 'barrissimo']
32
+ cell = Cell.new :value => "barrissimo\n"+"foo".yellow, :table => Terminal::Table.new, :index => 0
33
+ cell.value.should == "barrissimo\n"+"foo".yellow
34
+ cell.lines.should == ['barrissimo','foo'.yellow]
35
35
  cell.value_for_column_width_recalc.should == 'barrissimo'
36
- cell.render(1).should == " barrissimo "
36
+ cell.render(0).should == " barrissimo "
37
37
  end
38
38
 
39
39
  it "should allow colorized content" do
@@ -161,15 +161,15 @@ module Terminal
161
161
  @table << ['b', 2]
162
162
  @table << ['c', 3]
163
163
  @table.render.should == <<-EOF.deindent
164
- +-------+-----+
165
- | Title |
166
- +-------+-----+
167
- | Char | Num |
168
- +-------+-----+
169
- | a | 1 |
170
- | b | 2 |
171
- | c | 3 |
172
- +-------+-----+
164
+ +------+-----+
165
+ | Title |
166
+ +------+-----+
167
+ | Char | Num |
168
+ +------+-----+
169
+ | a | 1 |
170
+ | b | 2 |
171
+ | c | 3 |
172
+ +------+-----+
173
173
  EOF
174
174
  end
175
175
 
@@ -2,15 +2,15 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{terminal-table}
5
- s.version = "1.4.4"
5
+ s.version = "1.4.5"
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{2011-11-07}
9
+ s.date = %q{2012-3-15}
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/table_helper.rb", "lib/terminal-table/version.rb", "lib/terminal-table/cell.rb", "lib/terminal-table/row.rb", "lib/terminal-table/separator.rb", "lib/terminal-table/style.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/cell.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/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"]
14
14
  s.homepage = %q{http://github.com/visionmedia/terminal-table}
15
15
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Terminal-table", "--main", "README.rdoc"]
16
16
  s.require_paths = ["lib"]
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.rubygems_version = %q{1.3.5}
19
19
  s.summary = %q{Simple, feature rich ascii table generation library}
20
20
 
21
- if s.respond_to? :specification_version then
21
+ if s.respond_to? :specification_version= then
22
22
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
23
  s.specification_version = 3
24
24
 
metadata CHANGED
@@ -1,37 +1,35 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.4
3
+ specification_version: 1
2
4
  name: terminal-table
3
- version: !ruby/object:Gem::Version
4
- version: 1.4.4
5
- prerelease:
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:
6
25
  platform: ruby
7
- authors:
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
8
30
  - TJ Holowaychuk
9
31
  - Scott J. Goldman
10
- autorequire:
11
- bindir: bin
12
- cert_chain: []
13
- date: 2011-11-07 00:00:00.000000000Z
14
- dependencies: []
15
- description: Simple, feature rich ascii table generation library
16
- email: tj@vision-media.ca
17
- executables: []
18
- extensions: []
19
- extra_rdoc_files:
20
- - README.rdoc
21
- - lib/terminal-table.rb
22
- - lib/terminal-table/cell.rb
23
- - lib/terminal-table/core_ext.rb
24
- - lib/terminal-table/import.rb
25
- - lib/terminal-table/table.rb
26
- - lib/terminal-table/table_helper.rb
27
- - lib/terminal-table/version.rb
28
- - lib/terminal-table/row.rb
29
- - lib/terminal-table/separator.rb
30
- - lib/terminal-table/style.rb
31
- - tasks/docs.rake
32
- - tasks/gemspec.rake
33
- - tasks/spec.rake
34
- files:
32
+ files:
35
33
  - History.rdoc
36
34
  - Manifest
37
35
  - README.rdoc
@@ -58,34 +56,35 @@ files:
58
56
  - tasks/gemspec.rake
59
57
  - tasks/spec.rake
60
58
  - terminal-table.gemspec
61
- homepage: http://github.com/visionmedia/terminal-table
62
- licenses: []
63
- post_install_message:
64
- rdoc_options:
59
+ test_files: []
60
+
61
+ rdoc_options:
65
62
  - --line-numbers
66
63
  - --inline-source
67
64
  - --title
68
65
  - Terminal-table
69
66
  - --main
70
67
  - README.rdoc
71
- require_paths:
72
- - lib
73
- required_ruby_version: !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ! '>='
77
- - !ruby/object:Gem::Version
78
- version: '0'
79
- required_rubygems_version: !ruby/object:Gem::Requirement
80
- none: false
81
- requirements:
82
- - - ! '>='
83
- - !ruby/object:Gem::Version
84
- version: '1.2'
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
+
85
87
  requirements: []
86
- rubyforge_project: terminal-table
87
- rubygems_version: 1.8.11
88
- signing_key:
89
- specification_version: 3
90
- summary: Simple, feature rich ascii table generation library
91
- test_files: []
88
+
89
+ dependencies: []
90
+