formatador 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/formatador.gemspec +3 -3
  3. data/lib/formatador.rb +16 -6
  4. metadata +18 -9
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.9
1
+ 0.0.10
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{formatador}
8
- s.version = "0.0.9"
8
+ s.version = "0.0.10"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Wesley Beary"]
12
- s.date = %q{2010-02-22}
12
+ s.date = %q{2010-03-04}
13
13
  s.description = %q{STDOUT text formatting}
14
14
  s.email = %q{wbeary@engineyard.com}
15
15
  s.extra_rdoc_files = [
@@ -29,7 +29,7 @@ Gem::Specification.new do |s|
29
29
  s.homepage = %q{http://github.com/geemus/formatador}
30
30
  s.rdoc_options = ["--charset=UTF-8"]
31
31
  s.require_paths = ["lib"]
32
- s.rubygems_version = %q{1.3.5}
32
+ s.rubygems_version = %q{1.3.6}
33
33
  s.summary = %q{Ruby STDOUT text formatting}
34
34
 
35
35
  if s.respond_to? :specification_version then
@@ -67,11 +67,11 @@ class Formatador
67
67
  nil
68
68
  end
69
69
 
70
- def display_table(hashes, keys = nil)
70
+ def display_table(hashes, keys = nil, &block)
71
71
  headers = keys || []
72
72
  widths = {}
73
73
  for hash in hashes
74
- for key, value in hash.keys
74
+ for key in hash.keys
75
75
  unless keys
76
76
  headers << key
77
77
  end
@@ -80,9 +80,19 @@ class Formatador
80
80
  headers = headers.uniq
81
81
  end
82
82
 
83
+ unless block_given?
84
+ headers = headers.sort {|x,y| x.to_s <=> y.to_s}
85
+ else
86
+ headers = headers.sort(&block)
87
+ end
88
+
83
89
  split = "+"
84
- for header in headers
85
- split << ('-' * (widths[header] + 2)) << '+'
90
+ if headers.empty?
91
+ split << '--+'
92
+ else
93
+ for header in headers
94
+ split << ('-' * (widths[header] + 2)) << '+'
95
+ end
86
96
  end
87
97
 
88
98
  display_line(split)
@@ -131,8 +141,8 @@ class Formatador
131
141
 
132
142
  %w{display display_line display_table format redisplay}.each do |method|
133
143
  eval <<-DEF
134
- def self.#{method}(*args)
135
- new.#{method}(*args)
144
+ def self.#{method}(*args, &block)
145
+ new.#{method}(*args, &block)
136
146
  end
137
147
  DEF
138
148
  end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: formatador
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 10
9
+ version: 0.0.10
5
10
  platform: ruby
6
11
  authors:
7
12
  - Wesley Beary
@@ -9,19 +14,21 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-02-22 00:00:00 -08:00
17
+ date: 2010-03-04 00:00:00 -08:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: shindo
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
23
29
  version: "0"
24
- version:
30
+ type: :development
31
+ version_requirements: *id001
25
32
  description: STDOUT text formatting
26
33
  email: wbeary@engineyard.com
27
34
  executables: []
@@ -53,18 +60,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
53
60
  requirements:
54
61
  - - ">="
55
62
  - !ruby/object:Gem::Version
63
+ segments:
64
+ - 0
56
65
  version: "0"
57
- version:
58
66
  required_rubygems_version: !ruby/object:Gem::Requirement
59
67
  requirements:
60
68
  - - ">="
61
69
  - !ruby/object:Gem::Version
70
+ segments:
71
+ - 0
62
72
  version: "0"
63
- version:
64
73
  requirements: []
65
74
 
66
75
  rubyforge_project:
67
- rubygems_version: 1.3.5
76
+ rubygems_version: 1.3.6
68
77
  signing_key:
69
78
  specification_version: 3
70
79
  summary: Ruby STDOUT text formatting