terminal-table 1.4.4 → 1.4.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+