columnize 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -1,101 +1,278 @@
1
- 2009-07-26 23:24 rockyb
1
+ 2011-04-27 r <rocky@gnu.org>
2
2
 
3
- * lib/columnize.rb: Small comment spelling typo.
3
+ * README.md: Fix code example.
4
4
 
5
- 2009-07-26 23:16 rockyb
5
+ 2011-04-27 r <rocky@gnu.org>
6
6
 
7
- * ChangeLog: Get ready for 0.3.1 release
7
+ * .gemspec, README, README.md, Rakefile: README->README.md
8
8
 
9
- 2009-07-26 23:13 rockyb
9
+ 2011-04-27 r <rocky@gnu.org>
10
10
 
11
- * NEWS, lib/columnize.rb, test/test-columnize.rb: Add lineprefix.
12
- Get ready for release.
11
+ * .gemspec, AUTHORS, COPYING, ChangeLog, Makefile, NEWS, README,
12
+ Rakefile, lib/Makefile, lib/columnize.rb, lib/version.rb,
13
+ tags/release-0.2.1/AUTHORS, tags/release-0.2.1/COPYING,
14
+ tags/release-0.2.1/ChangeLog, tags/release-0.2.1/NEWS,
15
+ tags/release-0.2.1/README, tags/release-0.2.1/Rakefile,
16
+ tags/release-0.2.1/VERSION, tags/release-0.2.1/lib/columnize.rb,
17
+ tags/release-0.2.1/test/test-columnize.rb,
18
+ tags/release-0.3.0/AUTHORS, tags/release-0.3.0/COPYING,
19
+ tags/release-0.3.0/ChangeLog, tags/release-0.3.0/NEWS,
20
+ tags/release-0.3.0/README, tags/release-0.3.0/Rakefile,
21
+ tags/release-0.3.0/VERSION, tags/release-0.3.0/lib/columnize.rb,
22
+ tags/release-0.3.0/test/test-columnize.rb,
23
+ tags/release-0.3.1/AUTHORS, tags/release-0.3.1/COPYING,
24
+ tags/release-0.3.1/ChangeLog, tags/release-0.3.1/NEWS,
25
+ tags/release-0.3.1/README, tags/release-0.3.1/Rakefile,
26
+ tags/release-0.3.1/VERSION, tags/release-0.3.1/lib/columnize.rb,
27
+ tags/release-0.3.1/test/test-columnize.rb, test/test-columnize.rb,
28
+ test/test-hashparm.rb, trunk/.gemspec, trunk/AUTHORS,
29
+ trunk/COPYING, trunk/ChangeLog, trunk/Makefile, trunk/NEWS,
30
+ trunk/README, trunk/Rakefile, trunk/lib/Makefile,
31
+ trunk/lib/columnize.rb, trunk/lib/version.rb,
32
+ trunk/test/test-columnize.rb, trunk/test/test-hashparm.rb: Remove
33
+ trunk and tags.
13
34
 
14
- 2009-07-26 21:59 mark-moseley
35
+ 2011-04-27 rockyb <rockyb>
15
36
 
16
- * ChangeLog, lib/columnize.rb: Ruby 1.9 updates
37
+ * trunk/ChangeLog, trunk/lib/columnize.rb, trunk/lib/version.rb,
38
+ trunk/test/test-columnize.rb, trunk/test/test-hashparm.rb: Redo
39
+ columnize options processing to allow for a single hash of options
40
+ instead of the numerous optional arguments. This make future
41
+ expansion easier.
17
42
 
18
- 2009-03-30 08:54 rockyb
43
+ 2010-09-22 rockyb <rockyb>
19
44
 
20
- * Rakefile: Revise for 1.9 version of rake
45
+ * trunk/Makefile, trunk/Rakefile: Rakefile: Remove bad test task
46
+ Makefile: simplify.
21
47
 
22
- 2009-01-16 18:32 rockyb
48
+ 2010-09-21 rockyb <rockyb>
23
49
 
24
- * ChangeLog, Rakefile, VERSION: package readme was wonky. Looks
25
- like no one reads this stuff.
50
+ * trunk/Makefile, trunk/Rakefile: Makefile was a little off
26
51
 
27
- 2009-01-10 19:02 rockyb
52
+ 2010-09-21 rockyb <rockyb>
28
53
 
29
- * ChangeLog, NEWS: Get ready for release
54
+ * trunk/.gemspec, trunk/Rakefile, trunk/lib/columnize.rb: Small
55
+ changes to Rakefile and rdoc and so on.
30
56
 
31
- 2009-01-08 09:27 rockyb
57
+ 2010-09-20 rockyb <rockyb>
32
58
 
33
- * ChangeLog, NEWS, VERSION, lib/columnize.rb,
34
- test/test-columnize.rb: Fix bad bug in arranging horizontally
59
+ * trunk/.gemspec, trunk/Rakefile: Forgot to add .gemspec
35
60
 
36
- 2009-01-01 04:15 rockyb
61
+ 2010-09-20 rockyb <rockyb>
37
62
 
38
- * NEWS: Merge NEWS
63
+ * trunk/ChangeLog, trunk/Makefile, trunk/NEWS, trunk/README,
64
+ trunk/Rakefile, trunk/VERSION, trunk/lib/Makefile,
65
+ trunk/lib/columnize.rb, trunk/lib/version.rb: Add .gemspec, correct
66
+ description field and add a summary. Add Columnize::VERSION Simplify
67
+ Rakefile Add stub Makefiles
39
68
 
40
- 2009-01-01 03:59 rockyb
69
+ 2010-03-01 rockyb <rockyb>
41
70
 
42
- * NEWS, VERSION: Ooops 0.2 release done. Go for 0.2.1
71
+ * trunk/README: Better README description
43
72
 
44
- 2009-01-01 03:55 rockyb
73
+ 2010-03-01 rockyb <rockyb>
45
74
 
46
- * ChangeLog: Get ready for release 0.2
75
+ * trunk/README: Update README
47
76
 
48
- 2009-01-01 03:52 rockyb
77
+ 2010-02-22 rockyb <rockyb>
49
78
 
50
- * ChangeLog, NEWS, VERSION, lib/columnize.rb,
51
- test/test-columnize.rb: Get ready for release 0.2
79
+ * trunk/ChangeLog, trunk/VERSION, trunk/lib/columnize.rb: Remove
80
+ shadow variable warnings. Bump version number
52
81
 
53
- 2008-03-16 21:14 rockyb
82
+ 2009-07-26 rockyb <rockyb>
54
83
 
55
- * lib/columnize.rb: *** empty log message ***
84
+ * tags/release-0.3.1/AUTHORS, tags/release-0.3.1/COPYING,
85
+ tags/release-0.3.1/ChangeLog, tags/release-0.3.1/NEWS,
86
+ tags/release-0.3.1/README, tags/release-0.3.1/Rakefile,
87
+ tags/release-0.3.1/VERSION, tags/release-0.3.1/lib/columnize.rb,
88
+ tags/release-0.3.1/test/test-columnize.rb: Release 0.3.1
56
89
 
57
- 2008-03-16 21:13 rockyb
90
+ 2009-07-26 rockyb <rockyb>
58
91
 
59
- * lib/columnize.rb: Simplify __FILE__ == $0. (rdebug now changes $0
60
- and rcov has an option)
92
+ * trunk/lib/columnize.rb: Small comment spelling typo.
61
93
 
62
- 2008-02-11 19:25 rockyb
94
+ 2009-07-26 rockyb <rockyb>
63
95
 
64
- * lib/columnize.rb: Remove 1.9's shadow warning
96
+ * trunk/ChangeLog: Get ready for 0.3.1 release
65
97
 
66
- 2007-12-09 17:33 rockyb
98
+ 2009-07-26 rockyb <rockyb>
67
99
 
68
- * README, Rakefile: Fix up doc a little. Make the default rake task
69
- "test".
100
+ * trunk/NEWS, trunk/lib/columnize.rb, trunk/test/test-columnize.rb:
101
+ Add lineprefix. Get ready for release.
70
102
 
71
- 2007-12-09 16:49 rockyb
103
+ 2009-07-26 mark-moseley <mark-moseley>
72
104
 
73
- * lib/columnize.rb: Doc fix.
105
+ * trunk/ChangeLog, trunk/lib/columnize.rb: Ruby 1.9 updates
74
106
 
75
- 2007-12-09 16:47 rockyb
107
+ 2009-03-30 rockyb <rockyb>
76
108
 
77
- * ChangeLog, lib/columnize.rb, test/test-columnize.rb:
78
- columnize.rb: Allow one to specify a separator string. Remove
79
- restriction that
80
- all entries in the array have to be a string.
81
- test-columnize.rb: more tests - invalid list, empty list, with
82
- separator
83
- string parameter.
109
+ * trunk/Rakefile: Revise for 1.9 version of rake
84
110
 
85
- 2007-12-09 14:51 rockyb
111
+ 2009-01-16 rockyb <rockyb>
86
112
 
87
- * test/test-columnize.rb: Typo.
113
+ * trunk/ChangeLog, trunk/Rakefile, trunk/VERSION: package readme was
114
+ wonky. Looks like no one reads this stuff.
88
115
 
89
- 2007-12-09 14:48 rockyb
116
+ 2009-01-10 rockyb <rockyb>
90
117
 
91
- * ., NEWS, README, lib/columnize.rb, test/test-columnize.rb:
92
- Property changes for Id lines and to make test-columnize.rb
93
- executable.
118
+ * tags/release-0.3.0/AUTHORS, tags/release-0.3.0/COPYING,
119
+ tags/release-0.3.0/ChangeLog, tags/release-0.3.0/NEWS,
120
+ tags/release-0.3.0/README, tags/release-0.3.0/Rakefile,
121
+ tags/release-0.3.0/VERSION, tags/release-0.3.0/lib/columnize.rb,
122
+ tags/release-0.3.0/test/test-columnize.rb: Release 0.3.0
94
123
 
95
- 2007-12-09 14:40 rockyb
124
+ 2009-01-10 rockyb <rockyb>
96
125
 
97
- * ., AUTHORS, COPYING, ChangeLog, NEWS, README, Rakefile, VERSION,
98
- lib, lib/columnize.rb, test, test/test-columnize.rb: Initial
99
- release of Columnize, a module to print an Array in column-sorted
100
- order.
126
+ * trunk/ChangeLog, trunk/NEWS: Get ready for release
127
+
128
+ 2009-01-08 rockyb <rockyb>
129
+
130
+ * trunk/ChangeLog, trunk/NEWS, trunk/VERSION,
131
+ trunk/lib/columnize.rb, trunk/test/test-columnize.rb: Fix bad bug in
132
+ arranging horizontally
133
+
134
+ 2009-01-01 rockyb <rockyb>
135
+
136
+ * columnize/trunk/AUTHORS, columnize/trunk/COPYING,
137
+ columnize/trunk/ChangeLog, columnize/trunk/NEWS,
138
+ columnize/trunk/README, columnize/trunk/Rakefile,
139
+ columnize/trunk/VERSION, columnize/trunk/lib/columnize.rb,
140
+ columnize/trunk/test/test-columnize.rb: Remove hacky
141
+ columnize/columnize
142
+
143
+ 2009-01-01 rockyb <rockyb>
144
+
145
+ * tags/columnize-0.2/AUTHORS, tags/columnize-0.2/COPYING,
146
+ tags/columnize-0.2/ChangeLog, tags/columnize-0.2/NEWS,
147
+ tags/columnize-0.2/README, tags/columnize-0.2/Rakefile,
148
+ tags/columnize-0.2/VERSION, tags/columnize-0.2/lib/columnize.rb,
149
+ tags/columnize-0.2/test/test-columnize.rb: Regularize tags names
150
+ better
151
+
152
+ 2009-01-01 rockyb <rockyb>
153
+
154
+ * tags/release-0.2.1/AUTHORS, tags/release-0.2.1/COPYING,
155
+ tags/release-0.2.1/ChangeLog, tags/release-0.2.1/NEWS,
156
+ tags/release-0.2.1/README, tags/release-0.2.1/Rakefile,
157
+ tags/release-0.2.1/VERSION, tags/release-0.2.1/lib/columnize.rb,
158
+ tags/release-0.2.1/test/test-columnize.rb: Release 0.2.1
159
+
160
+ 2009-01-01 rockyb <rockyb>
161
+
162
+ * trunk/NEWS: Merge NEWS
163
+
164
+ 2009-01-01 rockyb <rockyb>
165
+
166
+ * columnize/tags/columnize-0.2/AUTHORS,
167
+ columnize/tags/columnize-0.2/COPYING,
168
+ columnize/tags/columnize-0.2/ChangeLog,
169
+ columnize/tags/columnize-0.2/NEWS,
170
+ columnize/tags/columnize-0.2/README,
171
+ columnize/tags/columnize-0.2/Rakefile,
172
+ columnize/tags/columnize-0.2/VERSION,
173
+ columnize/tags/columnize-0.2/lib/columnize.rb,
174
+ columnize/tags/columnize-0.2/test/test-columnize.rb,
175
+ tags/columnize-0.2/AUTHORS, tags/columnize-0.2/COPYING,
176
+ tags/columnize-0.2/ChangeLog, tags/columnize-0.2/NEWS,
177
+ tags/columnize-0.2/README, tags/columnize-0.2/Rakefile,
178
+ tags/columnize-0.2/VERSION, tags/columnize-0.2/lib/columnize.rb,
179
+ tags/columnize-0.2/test/test-columnize.rb: Cleanup of
180
+ columnize/columnize crap
181
+
182
+ 2009-01-01 rockyb <rockyb>
183
+
184
+ * : Add directory for releases
185
+
186
+ 2009-01-01 rockyb <rockyb>
187
+
188
+ * trunk/NEWS, trunk/VERSION: Ooops 0.2 release done. Go for 0.2.1
189
+
190
+ 2009-01-01 rockyb <rockyb>
191
+
192
+ * trunk/ChangeLog: Get ready for release 0.2
193
+
194
+ 2009-01-01 rockyb <rockyb>
195
+
196
+ * trunk/ChangeLog, trunk/NEWS, trunk/VERSION,
197
+ trunk/lib/columnize.rb, trunk/test/test-columnize.rb: Get ready for
198
+ release 0.2
199
+
200
+ 2008-09-22 rockyb <rockyb>
201
+
202
+ * columnize/tags/columnize-0.2/AUTHORS,
203
+ columnize/tags/columnize-0.2/COPYING,
204
+ columnize/tags/columnize-0.2/ChangeLog,
205
+ columnize/tags/columnize-0.2/NEWS,
206
+ columnize/tags/columnize-0.2/README,
207
+ columnize/tags/columnize-0.2/Rakefile,
208
+ columnize/tags/columnize-0.2/VERSION,
209
+ columnize/tags/columnize-0.2/lib/columnize.rb,
210
+ columnize/tags/columnize-0.2/test/test-columnize.rb: Tag 0.2
211
+ release.
212
+
213
+ 2008-09-22 rockyb <rockyb>
214
+
215
+ * : Add tags directory for release
216
+
217
+ 2008-09-22 rockyb <rockyb>
218
+
219
+ * columnize/trunk/ChangeLog, columnize/trunk/NEWS: Add directory for
220
+ tagging releases. Other Administrivia.
221
+
222
+ 2008-09-22 rockyb <rockyb>
223
+
224
+ * columnize/trunk/VERSION, columnize/trunk/lib/columnize.rb: Get rid
225
+ of hacky $0 test.
226
+
227
+ 2008-03-16 rockyb <rockyb>
228
+
229
+ * trunk/lib/columnize.rb: [no log message]
230
+
231
+ 2008-03-16 rockyb <rockyb>
232
+
233
+ * trunk/lib/columnize.rb: Simplify __FILE__ == $0. (rdebug now
234
+ changes $0 and rcov has an option)
235
+
236
+ 2008-02-11 rockyb <rockyb>
237
+
238
+ * trunk/lib/columnize.rb: Remove 1.9's shadow warning
239
+
240
+ 2007-12-10 rockyb <rockyb>
241
+
242
+ * columnize/trunk/AUTHORS, columnize/trunk/COPYING,
243
+ columnize/trunk/ChangeLog, columnize/trunk/NEWS,
244
+ columnize/trunk/README, columnize/trunk/Rakefile,
245
+ columnize/trunk/VERSION, columnize/trunk/lib/columnize.rb,
246
+ columnize/trunk/test/test-columnize.rb: release 0.1
247
+
248
+ 2007-12-09 rockyb <rockyb>
249
+
250
+ * trunk/README, trunk/Rakefile: Fix up doc a little. Make the
251
+ default rake task "test".
252
+
253
+ 2007-12-09 rockyb <rockyb>
254
+
255
+ * trunk/lib/columnize.rb: Doc fix.
256
+
257
+ 2007-12-09 rockyb <rockyb>
258
+
259
+ * trunk/ChangeLog, trunk/lib/columnize.rb,
260
+ trunk/test/test-columnize.rb: columnize.rb: Allow one to specify a
261
+ separator string. Remove restriction that all entries in the array
262
+ have to be a string. test-columnize.rb: more tests - invalid list,
263
+ empty list, with separator string parameter.
264
+
265
+ 2007-12-09 rockyb <rockyb>
266
+
267
+ * trunk/test/test-columnize.rb: Typo.
268
+
269
+ 2007-12-09 rockyb <rockyb>
270
+
271
+ * : Property changes for Id lines and to make test-columnize.rb
272
+ executable.
273
+
274
+ 2007-12-09 rockyb <rockyb>
275
+
276
+ * Initial release of Columnize, a module to print an Array in
277
+ column-sorted order.
101
278
 
data/NEWS CHANGED
@@ -1,3 +1,8 @@
1
+ 0.3.3 June 12, 2011 Fleetwood release
2
+
3
+ - More general but simpler inteface using an options
4
+ hash. Compatibility is maintaind though.
5
+
1
6
  0.3.2
2
7
 
3
8
  - Mostly Administrivia.
@@ -29,4 +34,4 @@
29
34
  - Initial release of Columnize, a module to print an Array in
30
35
  column-sorted order
31
36
 
32
- $Id: NEWS 197 2010-09-20 16:27:05Z rockyb $
37
+ $Id$
@@ -1,11 +1,12 @@
1
- = Columnize - Module to show an Array formatted as a String aligned in columns.
1
+ # Columnize - Module to show an Array formatted as a String aligned in columns.
2
2
 
3
- == Summary
3
+ ## Summary
4
4
 
5
5
  In showing a long lists, sometimes one would prefer to see the value
6
6
  arranged aligned in columns. Some examples include listing methods
7
7
  of an object or debugger commands.
8
8
 
9
+ ```
9
10
  require 'columnize'
10
11
  columnize([1, 2, 3])
11
12
  1 2 3
@@ -19,19 +20,19 @@
19
20
  5 12 19 26 33 40 47 54 61 68 75 82 89 96
20
21
  6 13 20 27 34 41 48 55 62 69 76 83 90 97
21
22
  7 14 21 28 35 42 49 56 63 70 77 84 91 98
23
+ ```
22
24
 
23
-
24
- == Credits
25
+ ## Credits
25
26
 
26
27
  This is adapted from a method of the same name from Python's cmd module.
27
28
 
28
- == Other stuff
29
+ ## Other stuff
29
30
 
30
31
  Author:: Rocky Bernstein <rockyb@rubyforge.net>
31
- License:: Copyright (c) 2007 Rocky Bernstein
32
+ License:: Copyright (c) 2007, 2011 Rocky Bernstein
32
33
  Released under the GNU GPL 2 license
33
34
 
34
- == Warranty
35
+ ## Warranty
35
36
 
36
37
  This program is distributed in the hope that it will be useful,
37
38
  but WITHOUT ANY WARRANTY; without even the implied warranty of
data/Rakefile CHANGED
@@ -41,15 +41,23 @@ task :test => :lib
41
41
  desc "same as test"
42
42
  task :check => :test
43
43
 
44
- desc "Create a GNU-style ChangeLog via svn2cl"
44
+ desc 'Create a GNU-style ChangeLog via git2cl'
45
45
  task :ChangeLog do
46
- system("svn2cl --authors=svn2cl_usermap")
46
+ system('git log --pretty --numstat --summary | git2cl > ChangeLog')
47
47
  end
48
48
 
49
49
  task :default => [:test]
50
50
 
51
+ task :clobber_rdoc do
52
+ FileUtils.rm_rf File.join(ROOT_DIR, 'doc')
53
+ end
54
+
55
+ task :rm_patch_residue do
56
+ FileUtils.rm_rf FileList['**/*.{rej,orig}'].to_a
57
+ end
58
+
51
59
  desc "Remove built files"
52
- task :clean => [:clobber_package, :clobber_rdoc]
60
+ task :clean => [:clobber_package, :clobber_rdoc, :rm_patch_residue]
53
61
 
54
62
  desc "Generate the gemspec"
55
63
  task :generate do
@@ -68,9 +76,9 @@ Rake::RDocTask.new("rdoc") do |rdoc|
68
76
  rdoc.title = "Columnize #{Columnize::VERSION} Documentation"
69
77
 
70
78
  # Make the README file the start page for the generated html
71
- rdoc.options += %w(--main README)
79
+ rdoc.options += %w(--main README.md)
72
80
 
73
- rdoc.rdoc_files.include('lib/*.rb', 'README', 'COPYING')
81
+ rdoc.rdoc_files.include('lib/*.rb', 'README.md', 'COPYING')
74
82
  end
75
83
  desc "Same as rdoc"
76
84
  task :doc => :rdoc
@@ -1,4 +1,5 @@
1
- # Copyright (C) 2007, 2008, 2009, 2010 Rocky Bernstein <rockyb@rubyforge.net>
1
+ # Copyright (C) 2007, 2008, 2009, 2010, 2011 Rocky Bernstein
2
+ # <rockyb@rubyforge.net>
2
3
  #
3
4
  # This program is free software; you can redistribute it and/or modify
4
5
  # it under the terms of the GNU General Public License as published by
@@ -39,6 +40,29 @@
39
40
 
40
41
  module Columnize
41
42
 
43
+ DEFAULT_OPTS = {
44
+ :displaywidth => 80,
45
+ :colsep => ' ',
46
+ :ljust => true,
47
+ :lineprefix => '',
48
+ :arrange_vertical => true
49
+ }
50
+
51
+ module_function
52
+ def parse_columnize_options(args)
53
+ list = args.shift
54
+ if 1 == args.size && args[0].kind_of?(Hash)
55
+ return list, DEFAULT_OPTS.merge(args[0])
56
+ else
57
+ opts = DEFAULT_OPTS.dup
58
+ %w(displaywidth colsep arrange_vertical ljust lineprefix).each do |field|
59
+ break if args.empty?
60
+ opts[field.to_sym] = args.shift
61
+ end
62
+ return list, opts
63
+ end
64
+ end
65
+
42
66
  # Return a list of strings with embedded newlines (\n) as a compact
43
67
  # set of columns arranged horizontally or vertically.
44
68
  #
@@ -55,9 +79,9 @@ module Columnize
55
79
  # columns. If +arrange_vertical+ is set false, consecutive items
56
80
  # will go across, left to right, top to bottom.
57
81
 
58
- def columnize(list, displaywidth=80, colsep = ' ',
59
- arrange_vertical=true, ljust=true, lineprefix='')
82
+ def columnize(*args)
60
83
 
84
+ list, opts = parse_columnize_options(args)
61
85
  # Some degenerate cases
62
86
  if not list.is_a?(Array)
63
87
  return ''
@@ -72,15 +96,15 @@ module Columnize
72
96
 
73
97
  nrows = ncols = 0 # Make nrows, ncols have more global scope
74
98
  colwidths = [] # Same for colwidths
75
- displaywidth = [4, displaywidth - lineprefix.length].max
76
- if arrange_vertical
99
+ opts[:displaywidth] = [4, opts[:displaywidth] - opts[:lineprefix].length].max
100
+ if opts[:arrange_vertical]
77
101
  array_index = lambda {|num_rows, row, col| num_rows*col + row }
78
102
  # Try every row count from 1 upwards
79
103
  1.upto(l.size-1) do |_nrows|
80
104
  nrows = _nrows
81
105
  ncols = (l.size + nrows-1) / nrows
82
106
  colwidths = []
83
- totwidth = -colsep.length
107
+ totwidth = -opts[:colsep].length
84
108
 
85
109
  0.upto(ncols-1) do |_col|
86
110
  col = _col
@@ -95,13 +119,13 @@ module Columnize
95
119
  colwidth = [colwidth, l[i].size].max
96
120
  end
97
121
  colwidths << colwidth
98
- totwidth += colwidth + colsep.length
99
- if totwidth > displaywidth
122
+ totwidth += colwidth + opts[:colsep].length
123
+ if totwidth > opts[:displaywidth]
100
124
  ncols = col
101
125
  break
102
126
  end
103
127
  end
104
- if totwidth <= displaywidth
128
+ if totwidth <= opts[:displaywidth]
105
129
  break
106
130
  end
107
131
  end
@@ -129,13 +153,13 @@ module Columnize
129
153
  if texts.size > 0
130
154
  0.upto(texts.size-1) do |_col|
131
155
  col = _col
132
- if ljust
156
+ if opts[:ljust]
133
157
  texts[col] = texts[col].ljust(colwidths[col])
134
158
  else
135
159
  texts[col] = texts[col].rjust(colwidths[col])
136
160
  end
137
161
  end
138
- s += "%s%s\n" % [lineprefix, texts.join(colsep)]
162
+ s += "%s%s\n" % [opts[:lineprefix], texts.join(opts[:colsep])]
139
163
  end
140
164
  end
141
165
  return s
@@ -152,7 +176,7 @@ module Columnize
152
176
  nrows = _nrows
153
177
  rounded_size = nrows * ncols
154
178
  colwidths = []
155
- totwidth = -colsep.length
179
+ totwidth = -opts[:colsep].length
156
180
  colwidth = row = 0
157
181
  0.upto(ncols-1) do |_col|
158
182
  col = _col
@@ -167,21 +191,21 @@ module Columnize
167
191
  end
168
192
  end
169
193
  colwidths << colwidth
170
- totwidth += colwidth + colsep.length
171
- if totwidth > displaywidth
194
+ totwidth += colwidth + opts[:colsep].length
195
+ if totwidth > opts[:displaywidth]
172
196
  break
173
197
  end
174
198
  end
175
- if totwidth <= displaywidth
199
+ if totwidth <= opts[:displaywidth]
176
200
  # Found the right nrows and ncols
177
201
  nrows = row
178
202
  break
179
- elsif totwidth >= displaywidth
203
+ elsif totwidth >= opts[:displaywidth]
180
204
  # Need to reduce ncols
181
205
  break
182
206
  end
183
207
  end
184
- if totwidth <= displaywidth and i >= rounded_size-1
208
+ if totwidth <= opts[:displaywidth] and i >= rounded_size-1
185
209
  break
186
210
  end
187
211
  end
@@ -202,18 +226,17 @@ module Columnize
202
226
  texts << x
203
227
  end
204
228
  0.upto(texts.size-1) do |col|
205
- if ljust
229
+ if opts[:ljust]
206
230
  texts[col] = texts[col].ljust(colwidths[col])
207
231
  else
208
232
  texts[col] = texts[col].rjust(colwidths[col])
209
233
  end
210
234
  end
211
- s += "%s%s\n" % [lineprefix, texts.join(colsep)]
235
+ s += "%s%s\n" % [opts[:lineprefix], texts.join(opts[:colsep])]
212
236
  end
213
237
  return s
214
238
  end
215
239
  end
216
- module_function :columnize
217
240
  end
218
241
  if __FILE__ == $0
219
242
  #
@@ -1,3 +1,3 @@
1
1
  module Columnize
2
- VERSION = '0.3.2'
2
+ VERSION = '0.3.3'
3
3
  end
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- require "test/unit"
2
+ require 'test/unit'
3
3
 
4
4
  # Test of Columnize module
5
5
  class TestColumnize < Test::Unit::TestCase
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+ require 'test/unit'
3
+
4
+ # Test of Columnize module
5
+ class TestHashFormat < Test::Unit::TestCase
6
+ TOP_SRC_DIR = File.join(File.expand_path(File.dirname(__FILE__)),
7
+ '..', 'lib')
8
+ require File.join(TOP_SRC_DIR, 'columnize.rb')
9
+ include Columnize
10
+ def test_parse_columnize_options
11
+ list, default_opts = parse_columnize_options([[], {}])
12
+ assert list.kind_of?(Array)
13
+ assert default_opts.kind_of?(Hash)
14
+ list, opts = parse_columnize_options([[], 90])
15
+ assert_equal 90, opts[:displaywidth]
16
+ list, opts = parse_columnize_options([[], 70, '|'])
17
+ assert_equal 70, opts[:displaywidth]
18
+ assert_equal '|', opts[:colsep]
19
+ end
20
+
21
+ def basic
22
+ opts = {:xxx => 10, :yyy => ', '}
23
+ assert_equal("1, 2, 3\n",
24
+ Columnize::columnize([1, 2, 3], opts))
25
+ end
26
+ end
metadata CHANGED
@@ -1,12 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: columnize
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 3
8
- - 2
9
- version: 0.3.2
4
+ version: 0.3.3
10
5
  platform: ruby
11
6
  authors:
12
7
  - R. Bernstein
@@ -14,23 +9,35 @@ autorequire:
14
9
  bindir: bin
15
10
  cert_chain: []
16
11
 
17
- date: 2010-11-04 00:00:00 -04:00
12
+ date: 2011-06-11 00:00:00 -04:00
18
13
  default_executable:
19
14
  dependencies: []
20
15
 
21
- description: "\n\
22
- In showing a long lists, sometimes one would prefer to see the value\n\
23
- arranged aligned in columns. Some examples include listing methods\n\
24
- of an object or debugger commands. \n\n\
25
- An Example:\n\
26
- require \"columnize\"\n print columnize((1..100).to_a.map{|x| \"%2d\" % x}, 60)\n\n 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 \n 2 9 16 23 30 37 44 51 58 65 72 79 86 93 100\n 3 10 17 24 31 38 45 52 59 66 73 80 87 94\n 4 11 18 25 32 39 46 53 60 67 74 81 88 95\n 5 12 19 26 33 40 47 54 61 68 75 82 89 96\n 6 13 20 27 34 41 48 55 62 69 76 83 90 97\n 7 14 21 28 35 42 49 56 63 70 77 84 91 98\n"
16
+ description: |
17
+
18
+ In showing a long lists, sometimes one would prefer to see the value
19
+ arranged aligned in columns. Some examples include listing methods
20
+ of an object or debugger commands.
21
+
22
+ An Example:
23
+ require "columnize"
24
+ print columnize((1..100).to_a.map{|x| "%2d" % x}, 60)
25
+
26
+ 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99
27
+ 2 9 16 23 30 37 44 51 58 65 72 79 86 93 100
28
+ 3 10 17 24 31 38 45 52 59 66 73 80 87 94
29
+ 4 11 18 25 32 39 46 53 60 67 74 81 88 95
30
+ 5 12 19 26 33 40 47 54 61 68 75 82 89 96
31
+ 6 13 20 27 34 41 48 55 62 69 76 83 90 97
32
+ 7 14 21 28 35 42 49 56 63 70 77 84 91 98
33
+
27
34
  email: rockyb@rubyforge.net
28
35
  executables: []
29
36
 
30
37
  extensions: []
31
38
 
32
39
  extra_rdoc_files:
33
- - README
40
+ - README.md
34
41
  - lib/columnize.rb
35
42
  - COPYING
36
43
  files:
@@ -39,12 +46,13 @@ files:
39
46
  - ChangeLog
40
47
  - Makefile
41
48
  - NEWS
42
- - README
49
+ - README.md
43
50
  - Rakefile
44
51
  - lib/columnize.rb
45
52
  - lib/version.rb
46
53
  - lib/Makefile
47
54
  - test/test-columnize.rb
55
+ - test/test-hashparm.rb
48
56
  has_rdoc: true
49
57
  homepage: http://rubyforge.org/projects/rocky-hacks/columnize
50
58
  licenses:
@@ -52,33 +60,27 @@ licenses:
52
60
  post_install_message:
53
61
  rdoc_options:
54
62
  - --main
55
- - README
63
+ - README.md
56
64
  - --title
57
- - Columnize 0.3.2 Documentation
65
+ - Columnize 0.3.3 Documentation
58
66
  require_paths:
59
67
  - lib
60
68
  required_ruby_version: !ruby/object:Gem::Requirement
61
- none: false
62
69
  requirements:
63
70
  - - ">="
64
71
  - !ruby/object:Gem::Version
65
- segments:
66
- - 1
67
- - 8
68
- - 2
69
72
  version: 1.8.2
73
+ version:
70
74
  required_rubygems_version: !ruby/object:Gem::Requirement
71
- none: false
72
75
  requirements:
73
76
  - - ">="
74
77
  - !ruby/object:Gem::Version
75
- segments:
76
- - 0
77
78
  version: "0"
79
+ version:
78
80
  requirements: []
79
81
 
80
82
  rubyforge_project: columnize
81
- rubygems_version: 1.3.7
83
+ rubygems_version: 1.3.5
82
84
  signing_key:
83
85
  specification_version: 3
84
86
  summary: Module to format an Array as an Array of String aligned in columns