columnize 0.3.6 → 0.8.9
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/.travis.yml +9 -0
- data/AUTHORS +1 -0
- data/COPYING +3 -3
- data/Gemfile +3 -0
- data/Gemfile.lock +20 -0
- data/Makefile +5 -1
- data/NEWS +16 -9
- data/README.md +57 -33
- data/Rakefile +31 -19
- data/THANKS +8 -0
- data/columnize.gemspec +7 -5
- data/lib/columnize.rb +95 -260
- data/lib/columnize/columnize.rb +159 -0
- data/lib/columnize/opts.rb +35 -0
- data/lib/columnize/version.rb +1 -1
- data/test/test-columnize-array.rb +48 -0
- data/test/test-columnize.rb +24 -38
- data/test/test-columnizer.rb +112 -0
- data/test/test-hashparm.rb +22 -59
- data/test/test-issue3.rb +13 -26
- data/test/test-min_rows_and_colwidths.rb +65 -0
- metadata +75 -45
data/test/test-hashparm.rb
CHANGED
@@ -3,78 +3,41 @@ require 'test/unit'
|
|
3
3
|
|
4
4
|
# Test of Columnize module
|
5
5
|
class TestHashFormat < Test::Unit::TestCase
|
6
|
-
TOP_SRC_DIR = File.join(File.expand_path(File.dirname(__FILE__)),
|
7
|
-
'..', 'lib')
|
6
|
+
TOP_SRC_DIR = File.join(File.expand_path(File.dirname(__FILE__)), '..', 'lib')
|
8
7
|
require File.join(TOP_SRC_DIR, 'columnize.rb')
|
9
|
-
|
8
|
+
|
10
9
|
def test_parse_columnize_options
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
list, opts = parse_columnize_options([[], 90])
|
15
|
-
assert_equal 90, opts[:displaywidth]
|
16
|
-
list, opts = parse_columnize_options([[], 70, '|'])
|
10
|
+
assert Columnize.parse_columnize_options([{}]).kind_of?(Hash)
|
11
|
+
assert_equal 90, Columnize.parse_columnize_options([90])[:displaywidth]
|
12
|
+
opts = Columnize.parse_columnize_options([70, '|'])
|
17
13
|
assert_equal 70, opts[:displaywidth]
|
18
14
|
assert_equal '|', opts[:colsep]
|
19
15
|
end
|
20
16
|
|
21
|
-
def test_parse_columnize_ljust
|
22
|
-
list, opts = parse_columnize_options([[1.5, 2, 3], {:ljust => :auto}])
|
23
|
-
assert_equal false, opts[:ljust]
|
24
|
-
list, opts = parse_columnize_options([[1.5, 2, 3], {:ljust => false}])
|
25
|
-
assert_equal false, opts[:ljust]
|
26
|
-
list, opts = parse_columnize_options([[1.5, 2, 3], {:ljust => true}])
|
27
|
-
assert_equal true, opts[:ljust]
|
28
|
-
list, opts = parse_columnize_options([[1, 2, 'b'], {:ljust => :auto}])
|
29
|
-
assert_equal true, opts[:ljust]
|
30
|
-
end
|
31
|
-
|
32
17
|
def test_new_hash
|
33
|
-
|
34
|
-
|
35
|
-
:term_adjust => true,
|
36
|
-
}])
|
37
|
-
[[:displaywidth, 40], [:colsep, ', '], [:term_adjust, true]].each do
|
38
|
-
|field, value|
|
39
|
-
assert_equal(value , opts[field])
|
40
|
-
end
|
41
|
-
list, opts = parse_columnize_options([[], {:displaywidth => 40,
|
42
|
-
:colsep => ', ',
|
43
|
-
}])
|
44
|
-
assert_equal(false , opts[:term_adjust])
|
45
|
-
opts = {:colsep => ', '}
|
46
|
-
assert_equal("1, 2, 3\n",
|
47
|
-
Columnize::columnize([1, 2, 3], opts))
|
18
|
+
hash = {:displaywidth => 40, :colsep => ', ', :term_adjust => true,}
|
19
|
+
assert_equal(hash, Columnize.parse_columnize_options([hash]), "parse_columnize_options returns same hash it was passed")
|
48
20
|
end
|
49
|
-
|
21
|
+
|
50
22
|
def test_array
|
51
23
|
data = (0..54).to_a
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
"]\n",
|
60
|
-
columnize(data,
|
61
|
-
:arrange_array => true, :ljust => false,
|
62
|
-
:displaywidth => 39))
|
24
|
+
expected = "[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,\n" +
|
25
|
+
" 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n" +
|
26
|
+
" 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,\n" +
|
27
|
+
" 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n" +
|
28
|
+
" 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,\n" +
|
29
|
+
" 50, 51, 52, 53, 54]"
|
30
|
+
assert_equal(expected, Columnize.columnize(data, :arrange_array => true, :ljust => false, :displaywidth => 39))
|
63
31
|
end
|
64
32
|
|
65
33
|
def test_justify
|
66
34
|
data = (0..54).to_a
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
"]\n",
|
75
|
-
columnize(data,
|
76
|
-
:arrange_array => true,
|
77
|
-
:displaywidth => 39))
|
35
|
+
expected = "[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,\n" +
|
36
|
+
" 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n" +
|
37
|
+
" 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,\n" +
|
38
|
+
" 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n" +
|
39
|
+
" 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,\n" +
|
40
|
+
" 50, 51, 52, 53, 54]"
|
41
|
+
assert_equal(expected, Columnize.columnize(data, :arrange_array => true, :displaywidth => 39))
|
78
42
|
end
|
79
|
-
|
80
43
|
end
|
data/test/test-issue3.rb
CHANGED
@@ -1,37 +1,24 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'test/unit'
|
3
3
|
|
4
|
-
# Test of Columnize module
|
4
|
+
# Test of Columnize module for github issue #3
|
5
5
|
class TestIssue3 < Test::Unit::TestCase
|
6
|
-
@@TOP_SRC_DIR = File.join(File.expand_path(File.dirname(__FILE__)),
|
7
|
-
'..', 'lib')
|
6
|
+
@@TOP_SRC_DIR = File.join(File.expand_path(File.dirname(__FILE__)), '..', 'lib')
|
8
7
|
require File.join(@@TOP_SRC_DIR, 'columnize.rb')
|
9
|
-
|
8
|
+
|
10
9
|
# test columnize
|
11
10
|
def test_long_column
|
12
11
|
data = ["what's", "upppppppppppppppppp"]
|
13
|
-
|
14
|
-
assert_equal("what's\nupppppppppppppppppp
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
:displaywidth => 7))
|
12
|
+
data.columnize_opts = Columnize::DEFAULT_OPTS.merge :displaywidth => 7, :arrange_vertical => false
|
13
|
+
assert_equal("what's\nupppppppppppppppppp", data.columnize)
|
14
|
+
assert_equal("what's\nupppppppppppppppppp", data.columnize(:arrange_vertical => true))
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_long_column_with_ljust
|
20
18
|
data = ["whaaaaaat's", "up"]
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
:displaywidth => 7))
|
26
|
-
assert_equal("whaaaaaat's\nup\n",
|
27
|
-
Columnize::columnize(data,
|
28
|
-
:arrange_vertical => false,
|
29
|
-
:ljust => true,
|
30
|
-
:displaywidth => 7))
|
31
|
-
assert_equal("whaaaaaat's\nup\n",
|
32
|
-
Columnize::columnize(data,
|
33
|
-
:arrange_vertical => true,
|
34
|
-
:ljust => true,
|
35
|
-
:displaywidth => 7))
|
19
|
+
data.columnize_opts = Columnize::DEFAULT_OPTS.merge :displaywidth => 7, :arrange_vertical => false, :ljust => true
|
20
|
+
assert_equal("whaaaaaat's\nup", data.columnize)
|
21
|
+
assert_equal("whaaaaaat's\n up", data.columnize(:ljust => false))
|
22
|
+
assert_equal("whaaaaaat's\nup", data.columnize(:arrange_vertical => true))
|
36
23
|
end
|
37
24
|
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'test/unit'
|
3
|
+
|
4
|
+
# Test of Columnize#min_rows_and_colwidths
|
5
|
+
class TestComputeRowsAndColwidths < Test::Unit::TestCase
|
6
|
+
# Ruby 1.8 form of require_relative
|
7
|
+
TOP_SRC_DIR = File.join(File.expand_path(File.dirname(__FILE__)), '..', 'lib')
|
8
|
+
require File.join(TOP_SRC_DIR, 'columnize.rb')
|
9
|
+
|
10
|
+
VOPTS = Columnize::DEFAULT_OPTS.merge(:displaywidth => 80)
|
11
|
+
HOPTS = VOPTS.merge(:arrange_vertical => false)
|
12
|
+
|
13
|
+
def min_rows_and_colwidths(list, opts)
|
14
|
+
Columnize::Columnizer.new(list, opts).min_rows_and_colwidths
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_colwidths
|
18
|
+
data = ["one", "two", "three",
|
19
|
+
"four", "five", "six",
|
20
|
+
"seven", "eight", "nine",
|
21
|
+
"ten", "eleven", "twelve",
|
22
|
+
"thirteen", "fourteen", "fifteen",
|
23
|
+
"sixteen", "seventeen", "eightteen",
|
24
|
+
"nineteen", "twenty", "twentyone",
|
25
|
+
"twentytwo", "twentythree", "twentyfour",
|
26
|
+
"twentyfive","twentysix", "twentyseven"]
|
27
|
+
|
28
|
+
[['horizontal', HOPTS, [10, 9, 11, 9, 11, 10], 5, 6],
|
29
|
+
['vertical' , VOPTS, [5, 5, 6, 8, 9, 11, 11], 4, 7]].each do
|
30
|
+
|direction, opts, expect_colwidths, expect_rows, expect_cols|
|
31
|
+
rows, colwidths = min_rows_and_colwidths(data, opts)
|
32
|
+
assert_equal(expect_colwidths, colwidths, "colwidths - #{direction}")
|
33
|
+
assert_equal(expect_rows, rows.length,
|
34
|
+
"number of rows - #{direction}")
|
35
|
+
assert_equal(expect_cols, rows.first.length,
|
36
|
+
"number of cols - #{direction}")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_horizontal_vs_vertical
|
41
|
+
data = (0..54).map{|i| i.to_s}
|
42
|
+
|
43
|
+
[['horizontal', HOPTS.merge(:displaywidth => 39), [2,2,2,2,2,2,2,2,2,2]],
|
44
|
+
['vertical' , VOPTS.merge(:displaywidth => 39), [1,2,2,2,2,2,2,2,2,2]]].each do
|
45
|
+
|direction, opts, expect|
|
46
|
+
rows, colwidths = min_rows_and_colwidths(data, opts)
|
47
|
+
assert_equal(expect, colwidths, "colwidths #{direction}")
|
48
|
+
assert_equal(6, rows.length, "number of rows - #{direction}")
|
49
|
+
assert_equal(10, rows.first.length, "number of cols - #{direction}")
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_displaywidth_smaller_than_largest_atom
|
54
|
+
data = ['a' * 100, 'b', 'c', 'd', 'e']
|
55
|
+
|
56
|
+
[['horizontal', HOPTS],
|
57
|
+
['vertical' , VOPTS]].each do
|
58
|
+
|direction, opts|
|
59
|
+
rows, colwidths = min_rows_and_colwidths(data, opts)
|
60
|
+
assert_equal([100], colwidths, "colwidths #{direction}")
|
61
|
+
assert_equal(5, rows.length, "number of rows - #{direction}")
|
62
|
+
assert_equal(1, rows.first.length, "number of cols - #{direction}")
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
metadata
CHANGED
@@ -1,91 +1,121 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: columnize
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 3
|
8
|
-
- 6
|
9
|
-
version: 0.3.6
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.8.9
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
12
|
-
-
|
7
|
+
authors:
|
8
|
+
- Rocky Bernstein
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
12
|
+
date: 2014-04-19 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rdoc
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rake
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
description: ! '
|
47
|
+
|
48
|
+
In showing a long lists, sometimes one would prefer to see the value
|
49
|
+
|
50
|
+
arranged aligned in columns. Some examples include listing methods
|
16
51
|
|
17
|
-
|
18
|
-
default_executable:
|
19
|
-
dependencies: []
|
52
|
+
of an object or debugger commands.
|
20
53
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
of an object or debugger commands. \n\
|
25
|
-
See Examples in the rdoc documentation for examples.\n"
|
54
|
+
See Examples in the rdoc documentation for examples.
|
55
|
+
|
56
|
+
'
|
26
57
|
email: rockyb@rubyforge.net
|
27
58
|
executables: []
|
28
|
-
|
29
59
|
extensions: []
|
30
|
-
|
31
|
-
extra_rdoc_files:
|
60
|
+
extra_rdoc_files:
|
32
61
|
- README.md
|
33
62
|
- lib/columnize.rb
|
34
63
|
- COPYING
|
35
|
-
|
64
|
+
- THANKS
|
65
|
+
files:
|
36
66
|
- .gitignore
|
67
|
+
- .travis.yml
|
37
68
|
- AUTHORS
|
38
69
|
- COPYING
|
39
70
|
- ChangeLog
|
71
|
+
- Gemfile
|
72
|
+
- Gemfile.lock
|
40
73
|
- Makefile
|
41
74
|
- NEWS
|
42
75
|
- README.md
|
43
76
|
- Rakefile
|
77
|
+
- THANKS
|
44
78
|
- columnize.gemspec
|
45
79
|
- lib/Makefile
|
46
80
|
- lib/columnize.rb
|
47
81
|
- lib/columnize/Makefile
|
82
|
+
- lib/columnize/columnize.rb
|
83
|
+
- lib/columnize/opts.rb
|
48
84
|
- lib/columnize/version.rb
|
85
|
+
- test/test-columnize-array.rb
|
49
86
|
- test/test-columnize.rb
|
87
|
+
- test/test-columnizer.rb
|
50
88
|
- test/test-hashparm.rb
|
51
89
|
- test/test-issue3.rb
|
52
|
-
|
90
|
+
- test/test-min_rows_and_colwidths.rb
|
53
91
|
homepage: https://github.com/rocky/columnize
|
54
|
-
licenses:
|
92
|
+
licenses:
|
55
93
|
- Ruby
|
56
94
|
- GPL2
|
57
95
|
post_install_message:
|
58
|
-
rdoc_options:
|
96
|
+
rdoc_options:
|
59
97
|
- --main
|
60
98
|
- README
|
61
99
|
- --title
|
62
|
-
- Columnize 0.
|
63
|
-
require_paths:
|
100
|
+
- Columnize 0.8.9 Documentation
|
101
|
+
require_paths:
|
64
102
|
- lib
|
65
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
103
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
66
104
|
none: false
|
67
|
-
requirements:
|
68
|
-
- -
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
segments:
|
71
|
-
- 1
|
72
|
-
- 8
|
73
|
-
- 2
|
105
|
+
requirements:
|
106
|
+
- - ! '>='
|
107
|
+
- !ruby/object:Gem::Version
|
74
108
|
version: 1.8.2
|
75
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
110
|
none: false
|
77
|
-
requirements:
|
78
|
-
- -
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
|
81
|
-
- 0
|
82
|
-
version: "0"
|
111
|
+
requirements:
|
112
|
+
- - ! '>='
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '0'
|
83
115
|
requirements: []
|
84
|
-
|
85
116
|
rubyforge_project: columnize
|
86
|
-
rubygems_version: 1.
|
117
|
+
rubygems_version: 1.8.23
|
87
118
|
signing_key:
|
88
119
|
specification_version: 3
|
89
120
|
summary: Module to format an Array as an Array of String aligned in columns
|
90
121
|
test_files: []
|
91
|
-
|