terminal-table 1.5.0 → 1.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +6 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/Manifest +9 -2
- data/Rakefile +9 -15
- data/lib/terminal-table.rb +1 -2
- data/lib/terminal-table/import.rb +1 -4
- data/lib/terminal-table/row.rb +48 -0
- data/lib/terminal-table/separator.rb +14 -0
- data/lib/terminal-table/style.rb +62 -0
- data/lib/terminal-table/version.rb +1 -2
- data/terminal-table.gemspec +19 -26
- metadata +88 -34
- data/spec/cell_spec.rb +0 -60
- data/spec/import_spec.rb +0 -11
- data/spec/spec_helper.rb +0 -8
- data/spec/table_spec.rb +0 -572
- data/tasks/docs.rake +0 -13
- data/tasks/gemspec.rake +0 -3
- data/tasks/spec.rake +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 313963c2be91f08803b78b1d933955c2a23b8a0a
|
4
|
+
data.tar.gz: db59f26e5ea165487fdd1c43f0bf39c1a9203476
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8fe9f4508ffd90a2e57c2629bef2341692e80a476db60eafffabd35e2710a4c8e0107767c1c5a68537178ae5369c8e6436729c0d131c09b009290be422415390
|
7
|
+
data.tar.gz: 2f88a22636edfe84955c152d6f60e65d9d32a662da5faca63d4fe3cb9c45896371ca778b01c3952aa592a0fb888b8da7e100f94bcfefea25c5a95a204d0d9437
|
data/.gitignore
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm 1.8.7@terminal-table --create
|
data/Gemfile
ADDED
data/Manifest
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
+
Gemfile
|
1
2
|
History.rdoc
|
2
|
-
Manifest
|
3
3
|
README.rdoc
|
4
4
|
Rakefile
|
5
5
|
Todo.rdoc
|
@@ -7,14 +7,21 @@ examples/examples.rb
|
|
7
7
|
lib/terminal-table.rb
|
8
8
|
lib/terminal-table/cell.rb
|
9
9
|
lib/terminal-table/import.rb
|
10
|
+
lib/terminal-table/row.rb
|
11
|
+
lib/terminal-table/separator.rb
|
12
|
+
lib/terminal-table/style.rb
|
10
13
|
lib/terminal-table/table.rb
|
11
14
|
lib/terminal-table/table_helper.rb
|
12
15
|
lib/terminal-table/version.rb
|
13
16
|
spec/cell_spec.rb
|
14
|
-
spec/
|
17
|
+
spec/row_spec.rb
|
15
18
|
spec/spec_helper.rb
|
19
|
+
spec/table_helper_spec.rb
|
16
20
|
spec/table_spec.rb
|
17
21
|
tasks/docs.rake
|
18
22
|
tasks/gemspec.rake
|
19
23
|
tasks/spec.rake
|
20
24
|
terminal-table.gemspec
|
25
|
+
terminal-table.sublime-project
|
26
|
+
terminal-table.sublime-workspace
|
27
|
+
Manifest
|
data/Rakefile
CHANGED
@@ -1,15 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
p.summary = "Simple, feature rich ascii table generation library"
|
11
|
-
p.url = "http://github.com/visionmedia/terminal-table"
|
12
|
-
p.runtime_dependencies = []
|
13
|
-
end
|
14
|
-
|
15
|
-
Dir['tasks/**/*.rake'].sort.each { |lib| load lib }
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
|
3
|
+
desc "Run specs"
|
4
|
+
task :spec do
|
5
|
+
sh "bundle exec rspec -f progress"
|
6
|
+
end
|
7
|
+
|
8
|
+
desc "Default: Run specs"
|
9
|
+
task :default => [:spec]
|
data/lib/terminal-table.rb
CHANGED
@@ -21,7 +21,6 @@
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
23
|
|
24
|
-
|
25
|
-
%w(version table cell row separator style table_helper).each do |file|
|
24
|
+
%w(cell row separator style table table_helper version).each do |file|
|
26
25
|
require "terminal-table/#{file}"
|
27
26
|
end
|
@@ -0,0 +1,48 @@
|
|
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
|
@@ -0,0 +1,14 @@
|
|
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
|
@@ -0,0 +1,62 @@
|
|
1
|
+
|
2
|
+
module Terminal
|
3
|
+
class Table
|
4
|
+
# A Style object holds all the formatting information for a Table object
|
5
|
+
#
|
6
|
+
# To create a table with a certain style, use either the constructor
|
7
|
+
# option <tt>:style</tt>, the Table#style object or the Table#style= method
|
8
|
+
#
|
9
|
+
# All these examples have the same effect:
|
10
|
+
#
|
11
|
+
# # by constructor
|
12
|
+
# @table = Table.new(:style => {:padding_left => 2, :width => 40})
|
13
|
+
#
|
14
|
+
# # by object
|
15
|
+
# @table.style.padding_left = 2
|
16
|
+
# @table.style.width = 40
|
17
|
+
#
|
18
|
+
# # by method
|
19
|
+
# @table.style = {:padding_left => 2, :width => 40}
|
20
|
+
#
|
21
|
+
# To set a default style for all tables created afterwards use Style.defaults=
|
22
|
+
#
|
23
|
+
# Terminal::Table::Style.defaults = {:width => 80}
|
24
|
+
#
|
25
|
+
class Style
|
26
|
+
@@defaults = {
|
27
|
+
:border_x => "-", :border_y => "|", :border_i => "+",
|
28
|
+
:padding_left => 1, :padding_right => 1,
|
29
|
+
:width => nil, :alignment => nil
|
30
|
+
}
|
31
|
+
|
32
|
+
attr_accessor :border_x
|
33
|
+
attr_accessor :border_y
|
34
|
+
attr_accessor :border_i
|
35
|
+
|
36
|
+
attr_accessor :padding_left
|
37
|
+
attr_accessor :padding_right
|
38
|
+
|
39
|
+
attr_accessor :width
|
40
|
+
attr_accessor :alignment
|
41
|
+
|
42
|
+
|
43
|
+
def initialize options = {}
|
44
|
+
apply self.class.defaults.merge(options)
|
45
|
+
end
|
46
|
+
|
47
|
+
def apply options
|
48
|
+
options.each { |m, v| __send__ "#{m}=", v }
|
49
|
+
end
|
50
|
+
|
51
|
+
class << self
|
52
|
+
def defaults
|
53
|
+
@@defaults
|
54
|
+
end
|
55
|
+
|
56
|
+
def defaults= options
|
57
|
+
@@defaults = defaults.merge(options)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/terminal-table.gemspec
CHANGED
@@ -1,31 +1,24 @@
|
|
1
|
-
#
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'terminal-table/version'
|
2
5
|
|
3
|
-
Gem::Specification.new do |
|
4
|
-
|
5
|
-
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "terminal-table"
|
8
|
+
spec.version = Terminal::Table::VERSION
|
9
|
+
spec.authors = ["TJ Holowaychuk", "Scott J. Goldman"]
|
10
|
+
spec.email = ["tj@vision-media.ca"]
|
6
11
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
s.description = %q{Simple, feature rich ascii table generation library}
|
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/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
|
-
s.homepage = %q{http://github.com/visionmedia/terminal-table}
|
15
|
-
s.license = %q{MIT}
|
16
|
-
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Terminal-table", "--main", "README.rdoc"]
|
17
|
-
s.require_paths = ["lib"]
|
18
|
-
s.rubyforge_project = %q{terminal-table}
|
19
|
-
s.rubygems_version = %q{1.3.5}
|
20
|
-
s.summary = %q{Simple, feature rich ascii table generation library}
|
12
|
+
spec.summary = "Simple, feature rich ascii table generation library"
|
13
|
+
spec.homepage = "https://github.com/tj/terminal-table"
|
14
|
+
spec.license = "MIT"
|
21
15
|
|
22
|
-
|
23
|
-
|
24
|
-
s.specification_version = 3
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.require_paths = ["lib"]
|
25
18
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
19
|
+
spec.add_development_dependency "bundler", "~> 1.10"
|
20
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
21
|
+
spec.add_development_dependency "rspec", ">= 3.0"
|
22
|
+
spec.add_development_dependency "term-ansicolor"
|
23
|
+
spec.add_development_dependency "pry"
|
31
24
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terminal-table
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TJ Holowaychuk
|
@@ -9,24 +9,88 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
dependencies:
|
14
|
-
|
15
|
-
|
12
|
+
date: 2015-06-28 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '1.10'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '1.10'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rake
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '10.0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '10.0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rspec
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '3.0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '3.0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: term-ansicolor
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: pry
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
description:
|
85
|
+
email:
|
86
|
+
- tj@vision-media.ca
|
16
87
|
executables: []
|
17
88
|
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
|
89
|
+
extra_rdoc_files: []
|
29
90
|
files:
|
91
|
+
- ".gitignore"
|
92
|
+
- ".rvmrc"
|
93
|
+
- Gemfile
|
30
94
|
- History.rdoc
|
31
95
|
- Manifest
|
32
96
|
- README.rdoc
|
@@ -36,29 +100,19 @@ files:
|
|
36
100
|
- lib/terminal-table.rb
|
37
101
|
- lib/terminal-table/cell.rb
|
38
102
|
- lib/terminal-table/import.rb
|
103
|
+
- lib/terminal-table/row.rb
|
104
|
+
- lib/terminal-table/separator.rb
|
105
|
+
- lib/terminal-table/style.rb
|
39
106
|
- lib/terminal-table/table.rb
|
40
107
|
- lib/terminal-table/table_helper.rb
|
41
108
|
- lib/terminal-table/version.rb
|
42
|
-
- spec/cell_spec.rb
|
43
|
-
- spec/import_spec.rb
|
44
|
-
- spec/spec_helper.rb
|
45
|
-
- spec/table_spec.rb
|
46
|
-
- tasks/docs.rake
|
47
|
-
- tasks/gemspec.rake
|
48
|
-
- tasks/spec.rake
|
49
109
|
- terminal-table.gemspec
|
50
|
-
homepage:
|
110
|
+
homepage: https://github.com/tj/terminal-table
|
51
111
|
licenses:
|
52
112
|
- MIT
|
53
113
|
metadata: {}
|
54
114
|
post_install_message:
|
55
|
-
rdoc_options:
|
56
|
-
- "--line-numbers"
|
57
|
-
- "--inline-source"
|
58
|
-
- "--title"
|
59
|
-
- Terminal-table
|
60
|
-
- "--main"
|
61
|
-
- README.rdoc
|
115
|
+
rdoc_options: []
|
62
116
|
require_paths:
|
63
117
|
- lib
|
64
118
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -70,11 +124,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
70
124
|
requirements:
|
71
125
|
- - ">="
|
72
126
|
- !ruby/object:Gem::Version
|
73
|
-
version: '
|
127
|
+
version: '0'
|
74
128
|
requirements: []
|
75
|
-
rubyforge_project:
|
129
|
+
rubyforge_project:
|
76
130
|
rubygems_version: 2.4.8
|
77
131
|
signing_key:
|
78
|
-
specification_version:
|
132
|
+
specification_version: 4
|
79
133
|
summary: Simple, feature rich ascii table generation library
|
80
134
|
test_files: []
|
data/spec/cell_spec.rb
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'term/ansicolor'
|
3
|
-
|
4
|
-
class String; include Term::ANSIColor; end
|
5
|
-
|
6
|
-
require 'spec_helper'
|
7
|
-
|
8
|
-
describe Terminal::Table do
|
9
|
-
Cell = Terminal::Table::Cell
|
10
|
-
|
11
|
-
it "should default alignment to the left" do
|
12
|
-
cell = Cell.new :value => 'foo', :table => Terminal::Table.new, :index => 0
|
13
|
-
cell.value.should == 'foo'
|
14
|
-
cell.alignment.should == :left
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should allow overriding of alignment" do
|
18
|
-
cell = Cell.new :value => 'foo', :alignment => :center, :table => Terminal::Table.new, :index => 0
|
19
|
-
cell.value.should == 'foo'
|
20
|
-
cell.alignment.should == :center
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should allow :left, :right and :center for alignment" do
|
24
|
-
@cell = Cell.new :value => 'foo', :table => Terminal::Table.new, :index => 0
|
25
|
-
@cell.alignment = :left
|
26
|
-
@cell.alignment = :right
|
27
|
-
@cell.alignment = :center
|
28
|
-
lambda { @cell.alignment = "foo" }.should raise_error
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should allow multiline content" do
|
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
|
-
cell.value_for_column_width_recalc.should == 'barrissimo'
|
36
|
-
cell.render(0).should == " barrissimo "
|
37
|
-
end
|
38
|
-
|
39
|
-
it "should allow colorized content" do
|
40
|
-
cell = Cell.new :value => "foo".red, :table => Terminal::Table.new, :index => 0
|
41
|
-
cell.value.should == "\e[31mfoo\e[0m"
|
42
|
-
cell.value_for_column_width_recalc.should == 'foo'
|
43
|
-
cell.render.should == " \e[31mfoo\e[0m "
|
44
|
-
end
|
45
|
-
|
46
|
-
it "should render padding properly" do
|
47
|
-
@table = Terminal::Table.new(:rows => [['foo', '2'], ['3', '4']], :style => {:padding_right => 3})
|
48
|
-
cell = @table.rows.first.cells.first
|
49
|
-
cell.value.should == 'foo'
|
50
|
-
cell.alignment.should == :left
|
51
|
-
cell.render.should == " foo "
|
52
|
-
end
|
53
|
-
|
54
|
-
it "should not ignore pipe characters" do
|
55
|
-
cell = Cell.new :value => "f|o|o", :table => Terminal::Table.new, :index => 0
|
56
|
-
cell.value.should == "f|o|o"
|
57
|
-
cell.value_for_column_width_recalc.should == 'f|o|o'
|
58
|
-
cell.render.should == " f|o|o "
|
59
|
-
end
|
60
|
-
end
|
data/spec/import_spec.rb
DELETED
data/spec/spec_helper.rb
DELETED
data/spec/table_spec.rb
DELETED
@@ -1,572 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
module Terminal
|
5
|
-
describe Table do
|
6
|
-
before :each do
|
7
|
-
@table = Table.new
|
8
|
-
end
|
9
|
-
|
10
|
-
it "should select columns" do
|
11
|
-
@table << ['foo', 'bar']
|
12
|
-
@table << ['big foo', 'big foo bar']
|
13
|
-
@table.column(1).should == ['bar', 'big foo bar']
|
14
|
-
end
|
15
|
-
|
16
|
-
it "should select the column with headings at an index" do
|
17
|
-
@table << [1,2,3]
|
18
|
-
@table << [4,5,6]
|
19
|
-
@table.column_with_headings(2).should == [3,6]
|
20
|
-
end
|
21
|
-
|
22
|
-
#it "should select the columns with colspans > 1 in the index" do
|
23
|
-
# @table << [1,{:value => 2, :colspan => 2}]
|
24
|
-
# @table << [{:value => 3, :colspan => 2}, 4]
|
25
|
-
#end
|
26
|
-
|
27
|
-
it "should account for the colspan when selecting columns" do
|
28
|
-
@table << [1,2,3]
|
29
|
-
@table << [{:value => "4,5", :colspan => 2}, 6]
|
30
|
-
@table.column_with_headings(0).should == [1,"4,5"]
|
31
|
-
@table.column_with_headings(1).should == [2,"4,5"]
|
32
|
-
@table.column_with_headings(2).should == [3,6]
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should render tables with colspan properly" do
|
36
|
-
@table << [1,2,3]
|
37
|
-
@table << [4,5,6]
|
38
|
-
@table << [{:value => "7", :colspan => 2}, 88]
|
39
|
-
@table.render.should == <<-EOF.deindent
|
40
|
-
+---+---+----+
|
41
|
-
| 1 | 2 | 3 |
|
42
|
-
| 4 | 5 | 6 |
|
43
|
-
| 7 | 88 |
|
44
|
-
+---+---+----+
|
45
|
-
EOF
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should count columns" do
|
49
|
-
@table << [1, 2, 3]
|
50
|
-
@table.number_of_columns.should == 3
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should iterate columns" do
|
54
|
-
@table << [1, 2, 3]
|
55
|
-
@table << [4, 5, 6]
|
56
|
-
@table.columns.should == [[1, 4], [2, 5], [3, 6]]
|
57
|
-
end
|
58
|
-
|
59
|
-
it "should select columns" do
|
60
|
-
@table.headings = ['one', 'two']
|
61
|
-
@table << ['foo', 'bar']
|
62
|
-
@table << ['big foo', 'big foo bar']
|
63
|
-
@table.column(1).should == ['bar', 'big foo bar']
|
64
|
-
end
|
65
|
-
|
66
|
-
it "should select columns when using hashes" do
|
67
|
-
@table.headings = ['one', 'two']
|
68
|
-
@table.rows = [[{ :value => 'a', :align => :left }, 1], ['b', 2], ['c', 3]]
|
69
|
-
@table.column(0).should == ['a', 'b', 'c']
|
70
|
-
end
|
71
|
-
|
72
|
-
it "should find column length" do
|
73
|
-
@table << ['foo', 'bar', 'a']
|
74
|
-
@table << ['big foo', 'big foo bar']
|
75
|
-
@table.column_width(1).should == 11
|
76
|
-
end
|
77
|
-
|
78
|
-
it "should find column length with headings" do
|
79
|
-
@table.headings = ['one', 'super long heading']
|
80
|
-
@table << ['foo', 'bar', 'a']
|
81
|
-
@table << ['big foo', 'big foo bar']
|
82
|
-
@table.column_width(1).should == 18
|
83
|
-
end
|
84
|
-
|
85
|
-
it "should render separators" do
|
86
|
-
@table.headings = ['Char', 'Num']
|
87
|
-
@table << ['a', 1]
|
88
|
-
separator = Terminal::Table::Separator.new(@table)
|
89
|
-
separator.render.should == '+------+-----+'
|
90
|
-
end
|
91
|
-
|
92
|
-
it "should add separator" do
|
93
|
-
@table << ['a', 1]
|
94
|
-
@table.add_separator
|
95
|
-
@table << ['b', 2]
|
96
|
-
@table.rows.size.should == 2
|
97
|
-
end
|
98
|
-
|
99
|
-
it "should render an empty table properly" do
|
100
|
-
@table.render.should == <<-EOF.deindent
|
101
|
-
++
|
102
|
-
++
|
103
|
-
EOF
|
104
|
-
end
|
105
|
-
|
106
|
-
it "should render properly" do
|
107
|
-
@table.headings = ['Char', 'Num']
|
108
|
-
@table << ['a', 1]
|
109
|
-
@table << ['b', 2]
|
110
|
-
@table << ['c', 3]
|
111
|
-
@table.render.should == <<-EOF.deindent
|
112
|
-
+------+-----+
|
113
|
-
| Char | Num |
|
114
|
-
+------+-----+
|
115
|
-
| a | 1 |
|
116
|
-
| b | 2 |
|
117
|
-
| c | 3 |
|
118
|
-
+------+-----+
|
119
|
-
EOF
|
120
|
-
end
|
121
|
-
|
122
|
-
it "should render styles properly" do
|
123
|
-
@table.headings = ['Char', 'Num']
|
124
|
-
@table.style = {:border_x => "=", :border_y => ":", :border_i => "x", :padding_left => 0, :padding_right => 2}
|
125
|
-
@table << ['a', 1]
|
126
|
-
@table << ['b', 2]
|
127
|
-
@table << ['c', 3]
|
128
|
-
@table.style.padding_right.should == 2
|
129
|
-
@table.render.should == <<-EOF.deindent
|
130
|
-
x======x=====x
|
131
|
-
:Char :Num :
|
132
|
-
x======x=====x
|
133
|
-
:a :1 :
|
134
|
-
:b :2 :
|
135
|
-
:c :3 :
|
136
|
-
x======x=====x
|
137
|
-
EOF
|
138
|
-
end
|
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
|
-
|
159
|
-
it "should render width properly" do
|
160
|
-
@table.headings = ['Char', 'Num']
|
161
|
-
@table << ['a', 1]
|
162
|
-
@table << ['b', 2]
|
163
|
-
@table << ['c', 3]
|
164
|
-
@table.style.width = 21
|
165
|
-
@table.render.should == <<-EOF.deindent
|
166
|
-
+---------+---------+
|
167
|
-
| Char | Num |
|
168
|
-
+---------+---------+
|
169
|
-
| a | 1 |
|
170
|
-
| b | 2 |
|
171
|
-
| c | 3 |
|
172
|
-
+---------+---------+
|
173
|
-
EOF
|
174
|
-
end
|
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
|
-
|
186
|
-
it "should render title properly" do
|
187
|
-
@table.title = "Title"
|
188
|
-
@table.headings = ['Char', 'Num']
|
189
|
-
@table << ['a', 1]
|
190
|
-
@table << ['b', 2]
|
191
|
-
@table << ['c', 3]
|
192
|
-
@table.render.should == <<-EOF.deindent
|
193
|
-
+------+-----+
|
194
|
-
| Title |
|
195
|
-
+------+-----+
|
196
|
-
| Char | Num |
|
197
|
-
+------+-----+
|
198
|
-
| a | 1 |
|
199
|
-
| b | 2 |
|
200
|
-
| c | 3 |
|
201
|
-
+------+-----+
|
202
|
-
EOF
|
203
|
-
end
|
204
|
-
|
205
|
-
it "should render properly without headings" do
|
206
|
-
@table << ['a', 1]
|
207
|
-
@table << ['b', 2]
|
208
|
-
@table << ['c', 3]
|
209
|
-
@table.render.should == <<-EOF.deindent
|
210
|
-
+---+---+
|
211
|
-
| a | 1 |
|
212
|
-
| b | 2 |
|
213
|
-
| c | 3 |
|
214
|
-
+---+---+
|
215
|
-
EOF
|
216
|
-
end
|
217
|
-
|
218
|
-
it "should render separators" do
|
219
|
-
@table.headings = ['Char', 'Num']
|
220
|
-
@table << ['a', 1]
|
221
|
-
@table << ['b', 2]
|
222
|
-
@table.add_separator
|
223
|
-
@table << ['c', 3]
|
224
|
-
@table.render.should == <<-EOF.deindent
|
225
|
-
+------+-----+
|
226
|
-
| Char | Num |
|
227
|
-
+------+-----+
|
228
|
-
| a | 1 |
|
229
|
-
| b | 2 |
|
230
|
-
+------+-----+
|
231
|
-
| c | 3 |
|
232
|
-
+------+-----+
|
233
|
-
EOF
|
234
|
-
end
|
235
|
-
|
236
|
-
it "should align columns with separators" do
|
237
|
-
@table.headings = ['Char', 'Num']
|
238
|
-
@table << ['a', 1]
|
239
|
-
@table << ['b', 2]
|
240
|
-
@table.add_separator
|
241
|
-
@table << ['c', 3]
|
242
|
-
@table.align_column 1, :right
|
243
|
-
@table.render.should == <<-EOF.deindent
|
244
|
-
+------+-----+
|
245
|
-
| Char | Num |
|
246
|
-
+------+-----+
|
247
|
-
| a | 1 |
|
248
|
-
| b | 2 |
|
249
|
-
+------+-----+
|
250
|
-
| c | 3 |
|
251
|
-
+------+-----+
|
252
|
-
EOF
|
253
|
-
end
|
254
|
-
|
255
|
-
|
256
|
-
it "should render properly using block syntax" do
|
257
|
-
table = Terminal::Table.new do |t|
|
258
|
-
t << ['a', 1]
|
259
|
-
t << ['b', 2]
|
260
|
-
t << ['c', 3]
|
261
|
-
end
|
262
|
-
table.render.should == <<-EOF.deindent
|
263
|
-
+---+---+
|
264
|
-
| a | 1 |
|
265
|
-
| b | 2 |
|
266
|
-
| c | 3 |
|
267
|
-
+---+---+
|
268
|
-
EOF
|
269
|
-
end
|
270
|
-
|
271
|
-
it "should render properly using instance_eval block syntax" do
|
272
|
-
table = Terminal::Table.new do
|
273
|
-
add_row ['a', 1]
|
274
|
-
add_row ['b', 2]
|
275
|
-
add_row ['c', 3]
|
276
|
-
end
|
277
|
-
table.render.should == <<-EOF.deindent
|
278
|
-
+---+---+
|
279
|
-
| a | 1 |
|
280
|
-
| b | 2 |
|
281
|
-
| c | 3 |
|
282
|
-
+---+---+
|
283
|
-
EOF
|
284
|
-
end
|
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
|
-
|
304
|
-
it "should allows a hash of options for creation" do
|
305
|
-
headings = ['Char', 'Num']
|
306
|
-
rows = [['a', 1], ['b', 2], ['c', 3]]
|
307
|
-
Terminal::Table.new(:rows => rows, :headings => headings).render.should == <<-EOF.deindent
|
308
|
-
+------+-----+
|
309
|
-
| Char | Num |
|
310
|
-
+------+-----+
|
311
|
-
| a | 1 |
|
312
|
-
| b | 2 |
|
313
|
-
| c | 3 |
|
314
|
-
+------+-----+
|
315
|
-
EOF
|
316
|
-
end
|
317
|
-
|
318
|
-
it "should flex for large cells" do
|
319
|
-
@table.headings = ['Just some characters', 'Num']
|
320
|
-
@table.rows = [['a', 1], ['b', 2], ['c', 3]]
|
321
|
-
@table.render.should == <<-EOF.deindent
|
322
|
-
+----------------------+-----+
|
323
|
-
| Just some characters | Num |
|
324
|
-
+----------------------+-----+
|
325
|
-
| a | 1 |
|
326
|
-
| b | 2 |
|
327
|
-
| c | 3 |
|
328
|
-
+----------------------+-----+
|
329
|
-
EOF
|
330
|
-
end
|
331
|
-
|
332
|
-
it "should allow alignment of headings and cells" do
|
333
|
-
@table.headings = ['Characters', {:value => 'Nums', :alignment => :right} ]
|
334
|
-
@table << [{:value => 'a', :alignment => :center}, 1]
|
335
|
-
@table << ['b', 222222222222222]
|
336
|
-
@table << ['c', 3]
|
337
|
-
@table.render.should == <<-EOF.deindent
|
338
|
-
+------------+-----------------+
|
339
|
-
| Characters | Nums |
|
340
|
-
+------------+-----------------+
|
341
|
-
| a | 1 |
|
342
|
-
| b | 222222222222222 |
|
343
|
-
| c | 3 |
|
344
|
-
+------------+-----------------+
|
345
|
-
EOF
|
346
|
-
|
347
|
-
end
|
348
|
-
|
349
|
-
it "should align columns, but allow specifics to remain" do
|
350
|
-
@table.headings = ['Just some characters', 'Num']
|
351
|
-
@table.rows = [[{:value => 'a', :alignment => :left}, 1], ['b', 2], ['c', 3]]
|
352
|
-
@table.align_column 0, :center
|
353
|
-
@table.align_column 1, :right
|
354
|
-
@table.render.should == <<-EOF.deindent
|
355
|
-
+----------------------+-----+
|
356
|
-
| Just some characters | Num |
|
357
|
-
+----------------------+-----+
|
358
|
-
| a | 1 |
|
359
|
-
| b | 2 |
|
360
|
-
| c | 3 |
|
361
|
-
+----------------------+-----+
|
362
|
-
EOF
|
363
|
-
end
|
364
|
-
|
365
|
-
describe "#==" do
|
366
|
-
it "should be equal to itself" do
|
367
|
-
t = Table.new
|
368
|
-
t.should == t
|
369
|
-
end
|
370
|
-
|
371
|
-
# it "should be equal with two empty tables" do
|
372
|
-
# table_one = Table.new
|
373
|
-
# table_two = Table.new
|
374
|
-
#
|
375
|
-
# table_one.should == table_two
|
376
|
-
# table_two.should == table_one
|
377
|
-
# end
|
378
|
-
|
379
|
-
it "should not be equal with different headings" do
|
380
|
-
table_one = Table.new
|
381
|
-
table_two = Table.new
|
382
|
-
|
383
|
-
table_one.headings << "a"
|
384
|
-
|
385
|
-
table_one.should_not == table_two
|
386
|
-
table_two.should_not == table_one
|
387
|
-
end
|
388
|
-
|
389
|
-
it "should not be equal with different rows" do
|
390
|
-
table_one = Table.new
|
391
|
-
table_two = Table.new
|
392
|
-
|
393
|
-
table_one.should_not == table_two
|
394
|
-
table_two.should_not == table_one
|
395
|
-
end
|
396
|
-
|
397
|
-
it "should not be equal if the other object does not respond_to? :headings" do
|
398
|
-
table_one = Table.new
|
399
|
-
table_two = Object.new
|
400
|
-
table_two.stub!(:rows).and_return([])
|
401
|
-
table_one.should_not == table_two
|
402
|
-
end
|
403
|
-
|
404
|
-
it "should not be equal if the other object does not respond_to? :rows" do
|
405
|
-
table_one = Table.new
|
406
|
-
table_two = Object.new
|
407
|
-
table_two.stub!(:rows).and_return([])
|
408
|
-
table_one.should_not == table_two
|
409
|
-
end
|
410
|
-
end
|
411
|
-
|
412
|
-
it "should handle colspan inside heading" do
|
413
|
-
@table.headings = ['one', { :value => 'two', :alignment => :center, :colspan => 2}]
|
414
|
-
@table.rows = [['a', 1, 2], ['b', 3, 4], ['c', 3, 4]]
|
415
|
-
@table.render.should == <<-EOF.deindent
|
416
|
-
+-----+---+---+
|
417
|
-
| one | two |
|
418
|
-
+-----+---+---+
|
419
|
-
| a | 1 | 2 |
|
420
|
-
| b | 3 | 4 |
|
421
|
-
| c | 3 | 4 |
|
422
|
-
+-----+---+---+
|
423
|
-
EOF
|
424
|
-
end
|
425
|
-
|
426
|
-
it "should handle colspan inside cells" do
|
427
|
-
@table.headings = ['one', 'two', 'three']
|
428
|
-
@table.rows = [['a', 1, 2], ['b', 3, 4], [{:value => "joined", :colspan => 2,:alignment => :center}, 'c']]
|
429
|
-
@table.render.should == <<-EOF.deindent
|
430
|
-
+-----+-----+-------+
|
431
|
-
| one | two | three |
|
432
|
-
+-----+-----+-------+
|
433
|
-
| a | 1 | 2 |
|
434
|
-
| b | 3 | 4 |
|
435
|
-
| joined | c |
|
436
|
-
+-----+-----+-------+
|
437
|
-
EOF
|
438
|
-
end
|
439
|
-
|
440
|
-
it "should handle colspan inside cells regardless of colspan position" do
|
441
|
-
@table.headings = ['one', 'two', 'three']
|
442
|
-
@table.rows = [['a', 1, 2], ['b', 3, 4], ['c', {:value => "joined", :colspan => 2,:alignment => :center}]]
|
443
|
-
@table.render.should == <<-EOF.deindent
|
444
|
-
+-----+-----+-------+
|
445
|
-
| one | two | three |
|
446
|
-
+-----+-----+-------+
|
447
|
-
| a | 1 | 2 |
|
448
|
-
| b | 3 | 4 |
|
449
|
-
| c | joined |
|
450
|
-
+-----+-----+-------+
|
451
|
-
EOF
|
452
|
-
end
|
453
|
-
|
454
|
-
it "should handle overflowing colspans" do
|
455
|
-
@table.headings = ['one', 'two', 'three']
|
456
|
-
@table.rows = [['a', 1, 2], ['b', 3, 4], ['c', {:value => "joined that is very very long", :colspan => 2,:alignment => :center}]]
|
457
|
-
@table.render.should == <<-EOF.deindent
|
458
|
-
+-----+---------------+---------------+
|
459
|
-
| one | two | three |
|
460
|
-
+-----+---------------+---------------+
|
461
|
-
| a | 1 | 2 |
|
462
|
-
| b | 3 | 4 |
|
463
|
-
| c | joined that is very very long |
|
464
|
-
+-----+---------------+---------------+
|
465
|
-
EOF
|
466
|
-
end
|
467
|
-
|
468
|
-
it "should only increase column size for multi-column if it is unavoidable" do
|
469
|
-
@table << [12345,2,3]
|
470
|
-
@table << [{:value => 123456789, :colspan => 2}, 4]
|
471
|
-
@table.render.should == <<-EOF.deindent
|
472
|
-
+-------+---+---+
|
473
|
-
| 12345 | 2 | 3 |
|
474
|
-
| 123456789 | 4 |
|
475
|
-
+-------+---+---+
|
476
|
-
EOF
|
477
|
-
end
|
478
|
-
|
479
|
-
|
480
|
-
it "should handle colspan 1" do
|
481
|
-
@table.headings = ['name', { :value => 'values', :colspan => 1}]
|
482
|
-
@table.rows = [['a', 1], ['b', 4], ['c', 7]]
|
483
|
-
@table.render.should == <<-EOF.deindent
|
484
|
-
+------+--------+
|
485
|
-
| name | values |
|
486
|
-
+------+--------+
|
487
|
-
| a | 1 |
|
488
|
-
| b | 4 |
|
489
|
-
| c | 7 |
|
490
|
-
+------+--------+
|
491
|
-
EOF
|
492
|
-
end
|
493
|
-
|
494
|
-
it "should handle big colspan" do
|
495
|
-
@table.headings = ['name', { :value => 'values', :alignment => :right, :colspan => 3}]
|
496
|
-
@table.headings = ['name', { :value => 'values', :colspan => 3}]
|
497
|
-
@table.rows = [['a', 1, 2, 3], ['b', 4, 5, 6], ['c', 7, 8, 9]]
|
498
|
-
|
499
|
-
@table.render.should == <<-EOF.deindent
|
500
|
-
+------+---+---+---+
|
501
|
-
| name | values |
|
502
|
-
+------+---+---+---+
|
503
|
-
| a | 1 | 2 | 3 |
|
504
|
-
| b | 4 | 5 | 6 |
|
505
|
-
| c | 7 | 8 | 9 |
|
506
|
-
+------+---+---+---+
|
507
|
-
EOF
|
508
|
-
end
|
509
|
-
|
510
|
-
it "should handle multiple colspan" do
|
511
|
-
@table.headings = [
|
512
|
-
'name',
|
513
|
-
{ :value => 'Values', :alignment => :right, :colspan => 2},
|
514
|
-
{ :value => 'Other values', :alignment => :right, :colspan => 2},
|
515
|
-
{ :value => 'Column 3', :alignment => :right, :colspan => 2}
|
516
|
-
]
|
517
|
-
|
518
|
-
3.times do |row_index|
|
519
|
-
row = ["row ##{row_index+1}"]
|
520
|
-
6.times do |i|
|
521
|
-
row << row_index*6 + i
|
522
|
-
end
|
523
|
-
@table.add_row(row)
|
524
|
-
end
|
525
|
-
|
526
|
-
@table.render.should == <<-EOF.deindent
|
527
|
-
+--------+----+----+-------+-------+-----+-----+
|
528
|
-
| name | Values | Other values | Column 3 |
|
529
|
-
+--------+----+----+-------+-------+-----+-----+
|
530
|
-
| row #1 | 0 | 1 | 2 | 3 | 4 | 5 |
|
531
|
-
| row #2 | 6 | 7 | 8 | 9 | 10 | 11 |
|
532
|
-
| row #3 | 12 | 13 | 14 | 15 | 16 | 17 |
|
533
|
-
+--------+----+----+-------+-------+-----+-----+
|
534
|
-
EOF
|
535
|
-
end
|
536
|
-
|
537
|
-
it "should render a table with only X cell borders" do
|
538
|
-
@table.style = {:border_x => "-", :border_y => "", :border_i => ""}
|
539
|
-
|
540
|
-
@table.headings = ['name', { :value => 'values', :alignment => :right, :colspan => 3}]
|
541
|
-
@table.headings = ['name', { :value => 'values', :colspan => 3}]
|
542
|
-
@table.rows = [['a', 1, 2, 3], ['b', 4, 5, 6], ['c', 7, 8, 9]]
|
543
|
-
|
544
|
-
@table.render.should == <<-EOF.strip
|
545
|
-
---------------
|
546
|
-
name values
|
547
|
-
---------------
|
548
|
-
a 1 2 3
|
549
|
-
b 4 5 6
|
550
|
-
c 7 8 9
|
551
|
-
---------------
|
552
|
-
EOF
|
553
|
-
end
|
554
|
-
|
555
|
-
it "should render a table without cell borders" do
|
556
|
-
@table.style = {:border_x => "", :border_y => "", :border_i => ""}
|
557
|
-
|
558
|
-
@table.headings = ['name', { :value => 'values', :alignment => :right, :colspan => 3}]
|
559
|
-
@table.headings = ['name', { :value => 'values', :colspan => 3}]
|
560
|
-
@table.rows = [['a', 1, 2, 3], ['b', 4, 5, 6], ['c', 7, 8, 9]]
|
561
|
-
|
562
|
-
@table.render.should == <<-EOF
|
563
|
-
|
564
|
-
name values
|
565
|
-
|
566
|
-
a 1 2 3
|
567
|
-
b 4 5 6
|
568
|
-
c 7 8 9
|
569
|
-
EOF
|
570
|
-
end
|
571
|
-
end
|
572
|
-
end
|
data/tasks/docs.rake
DELETED
@@ -1,13 +0,0 @@
|
|
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
|
-
end
|
data/tasks/gemspec.rake
DELETED
data/tasks/spec.rake
DELETED
@@ -1,25 +0,0 @@
|
|
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
|
-
end
|