zucker 11 → 12.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -30,8 +30,9 @@ class ZuckerDoc
30
30
 
31
31
  # include + format changelog
32
32
  @changelog = replace_html_special_chars File.read File.join( @path, 'CHANGELOG' )
33
- @changelog.gsub! /\| Zucker (?<version>\d+)/ do
34
- version = $~[:version].to_i
33
+ @changelog.gsub! /\| Zucker (?<version>\d+(?:\.\d+)?)/ do
34
+ version = $~[:version].to_f
35
+ version = version.to_i if version == version.to_i # oO
35
36
  if version && version > 0
36
37
  %{| <a href="http://rubyzucker.info/#{version}/">Zucker #{version}</a>}
37
38
  elsif version && version == 0
@@ -42,7 +43,7 @@ class ZuckerDoc
42
43
  end
43
44
 
44
45
  # build package list
45
- @packages = Zucker::PACKAGES.map{ |pkg, _|
46
+ @packs = Zucker::PACKS.map{ |pkg, _|
46
47
  descriptions = {
47
48
  :env => 'Cubes for collecting information.',
48
49
  :to_proc => 'Adds some ⇧to_proc⇧ extensions to use with ⇧&amp;⇧.',
@@ -72,7 +73,7 @@ class ZuckerDoc
72
73
 
73
74
  output_path = File.join(path, 'doc', 'zucker_doc.html')
74
75
 
75
- @cubes = Zucker::PACKAGES.map{ |pkg_name, cube_names|
76
+ @cubes = Zucker::PACKS.map{ |pkg_name, cube_names|
76
77
  package pkg_name, cubes.select{|name, _| cube_names.include?( name ) }
77
78
  }.join
78
79
 
@@ -499,7 +500,7 @@ table.source td { padding: 2px 4px; vertical-align: top; }
499
500
  <img class="rubylogo" alt="ruby" src="data:image/png;base64,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" />
500
501
  <h1>Ruby Zucker ..version..</h1>
501
502
  <h2 style="clear:both">What is it?</h2>
502
- <p class="text">Zucker (<a href="http://www.forvo.com/word/zucker/">pronunciation</a>) is the German word for sugar. It adds syntactic sugar in the form of independent, small scripts that make Ruby even more sweet. It adds a lot of useful helper methods for an improved readability and usage. Almost every Zucker feature comes with specs. Everything is documented on this page. The source is available at <a href="http://github.com/janlelis/zucker">github</a>.</p>
503
+ <p class="text">Zucker (<a href="http://www.forvo.com/word/zucker/">pronunciation</a>) is the German word for sugar. It adds syntactic sugar in the form of independent, small scripts that make Ruby even more sweet. It adds a lot of useful helper methods for an improved readability and usage of your every-day Ruby code. Almost every Zucker feature comes with specs. Everything is documented on this page. The source is available at <a href="http://github.com/janlelis/zucker">github</a>.</p>
503
504
 
504
505
  <h2>Install</h2>
505
506
  <p class="text">
@@ -515,23 +516,18 @@ table.source td { padding: 2px 4px; vertical-align: top; }
515
516
  </p>
516
517
  <h3 style="padding-left:1.3em">Packs</h3>
517
518
  <ul class="text">
518
- ..packages..
519
+ ..packs..
519
520
  </ul>
520
521
  <p class="text">
521
522
  Furthermore, there are two meta packs available: <strong>all</strong> simply requires all cubes and <strong>default</strong> requires all cubes except <strong>debug</strong>.</p>
522
523
 
523
- <h3 style="padding-left:1.3em">Which methods and constants are added directly to the global namespace by the <em>default</em> pack?</h3>
524
+ <h3 style="padding-left:1.3em">Overview: Which methods and constants are added directly to the global namespace by the <em>default</em> pack?</h3>
524
525
  <p class="text">
525
526
 
526
- <code class="scode">Info, RubyVersion, RubyEngine, OS, Infinity, NaN, alias_for, aliases_for, egonil, nn, iterate, instance_variables_from, ivars, activate_warnings!, deactivate_warnings!, executed_directly?, directly_executed?, standalone?, library?, ignore_sigint!, sandbox, tap_on, make_new, (blank?, present?, mcopy)</code>
527
+ <code class="scode">Info, RubyVersion, RubyEngine, OS, Infinity, NaN, alias_for, aliases_for, egonil, nn, iterate, instance_variables_from, ivars, activate_warnings!, deactivate_warnings!, executed_directly?, directly_executed?, standalone?, library?, ignore_sigint!, ignore_sigquit!, sandbox, tap_on, make_new, (blank?, present?, mcopy)</code>
527
528
  </p>
528
529
 
529
530
  ..cubes..
530
- <h2>Extras</h2>
531
- <p class="text">
532
- You can activate some additional aliases for Zucker functionality by executing:
533
- <code class="scode">Zucker.more_aliases! # => [:copy, :n, :init, :returning, :lib?, :RV, :RE]</code>
534
- </p>
535
531
 
536
532
  <h2>Changelog</h2>
537
533
  <div class="cubes">
@@ -2,14 +2,14 @@
2
2
 
3
3
  module Zucker
4
4
  # version and date get modified by the :prepare_release rake task
5
- VERSION = '11'
6
- DATE = '2011-05-25'
5
+ VERSION = '12.1'
6
+ DATE = '2012-01-16'
7
7
 
8
8
  # cube list
9
- PACKAGES = {
9
+ PACKS = {
10
10
  :control => %w|egonil iterate tap sandbox kernel|,
11
- :env => %w|engine info os version|,
12
- :extensions => %w|array enumerable file hash string unary union|,
11
+ :env => %w|engine info os ruby_version|,
12
+ :extensions => %w|array case enumerable file hash string unary union|,
13
13
  :object => %w|blank mcopy not|,
14
14
  :to_proc => %w|array_to_proc class_to_proc hash_to_proc regexp_to_proc|,
15
15
  :shortcuts => %w|aliases alias_for square_brackets_for ivars|,
@@ -20,71 +20,33 @@ module Zucker
20
20
 
21
21
  class << self
22
22
  # Zucker require helpers
23
- def require_cube(cube, version = '')
23
+ def require_cube(cube)
24
24
  unless RUBY_VERSION < '1.9' && Zucker::NON_1_8_CUBES.include?(cube)
25
- require ::File.expand_path( ::File.join('..', 'zucker', version, cube), __FILE__)
25
+ require "zucker/#{cube}"
26
26
  end
27
27
  end
28
28
 
29
- def require_package(package, version = '')
30
- PACKAGES[package.to_sym].each{ |cube|
31
- require_cube cube, version
29
+ def require_pack(pack)
30
+ PACKS[pack.to_sym].each{ |cube|
31
+ require_cube cube
32
32
  }
33
33
  end
34
34
 
35
- def require_this(filename)
36
- version= ::File.split( ::File.expand_path( filename) )[-2]
37
- version = '' if version !~ /^\d+$/
38
- package = ::File.basename( filename ).chomp( ::File.extname( filename ))
39
- Zucker.require_package(package, version)
35
+ def require_this(filename) # pack shortcut
36
+ pack = ::File.basename( filename ).chomp( ::File.extname( filename ))
37
+ require_pack(pack)
40
38
  end
41
39
 
42
- def require_all(version = '')
43
- require_default( version ) +
44
- [require_package( :debug, version )]
45
- end
46
-
47
- def require_default(version = '')
48
- PACKAGES.map{ |package, _|
49
- require_package package if package != :debug
40
+ def require_default
41
+ PACKS.map{ |pack, _|
42
+ require_pack pack if pack != :debug
50
43
  }.compact
51
44
  end
52
45
 
53
- # these aliases 'pollute' the global namespace or may conflict with other code
54
- def activate_more_aliases!
55
- aliases = {
56
- :mcopy => :copy,
57
- :egonil => :n,
58
- :make_new => :init,
59
- :tap_on => :returning,
60
- :library? => :lib?,
61
- :square_brackets_for => :brackets,
62
- }
63
-
64
- loaded_aliases = []
65
-
66
- aliases.each{ |old, new|
67
- Object.class_eval "alias #{new} #{old}; loaded_aliases << :#{new}" rescue nil
68
- }
69
-
70
- #eval "::RV = RubyVersion; loaded_aliases << :RV" rescue nil
71
- (
72
- Object.const_set 'RV', RubyVersion
73
- loaded_aliases << :RV
74
- ) rescue nil
75
- #eval "::RE = RubyEngine; loaded_aliases << :RE" rescue nil
76
- (
77
- Object.const_set 'RE', RubyEngine
78
- loaded_aliases << :RE
79
- ) rescue nil
80
-
81
- loaded_aliases
46
+ def require_all
47
+ require_default + [require_pack( :debug )]
82
48
  end
83
- alias more_aliases! activate_more_aliases!
84
49
  end
85
50
  end
86
51
 
87
- # You can use Zucker with
88
- # require 'zucker/all'
89
-
90
52
  # J-_-L
@@ -0,0 +1,14 @@
1
+ require 'zucker'
2
+ module Zucker Case = true end
3
+
4
+ class String
5
+ def to_snake
6
+ gsub(/(?<!^)[A-Z]/) do "_#$&" end.downcase
7
+ end
8
+
9
+ def to_camel
10
+ gsub(/(?:^|_)([a-z])/) do $1.upcase end
11
+ end
12
+ end
13
+
14
+ # J-_-L
@@ -1,7 +1,7 @@
1
1
  require 'zucker'
2
2
  require 'date'
3
3
  require 'time'
4
- module Zucker Version = true end
4
+ module Zucker RubyVersion = true end
5
5
 
6
6
  module RubyVersion
7
7
  class << self
@@ -0,0 +1,13 @@
1
+ require 'zucker/case'
2
+
3
+ describe 'String#to_camel' do
4
+ it 'should turn a snake_cased string to CamelCase' do
5
+ 'was_snake_case'.to_camel.should == 'WasSnakeCase'
6
+ end
7
+ end
8
+
9
+ describe 'String#to_snake' do
10
+ it 'should turn a CamelCased string to snake_case' do
11
+ 'WasCamelCase'.to_snake.should == 'was_camel_case'
12
+ end
13
+ end
metadata CHANGED
@@ -1,168 +1,167 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: zucker
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: '12.1'
4
5
  prerelease:
5
- version: "11"
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Jan Lelis
9
9
  - others
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
-
14
- date: 2011-05-26 00:00:00 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
13
+ date: 2012-01-16 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
17
16
  name: rspec
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &12652280 !ruby/object:Gem::Requirement
20
18
  none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: "0"
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
25
23
  type: :development
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: coderay
29
24
  prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: *12652280
26
+ - !ruby/object:Gem::Dependency
27
+ name: coderay
28
+ requirement: &12651800 !ruby/object:Gem::Requirement
31
29
  none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: "0"
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
36
34
  type: :development
37
- version_requirements: *id002
38
- description: |-
39
- Sweetens your Ruby code with syntactic sugar :).
40
- Adds a lot of little helpers that you do not want to miss again.
35
+ prerelease: false
36
+ version_requirements: *12651800
37
+ description: ! 'Sweetens your Ruby code with syntactic sugar :).
38
+
39
+ Adds a lot of little helpers that you do not want to miss again.'
41
40
  email: mail@janlelis.de
42
41
  executables: []
43
-
44
42
  extensions: []
45
-
46
43
  extra_rdoc_files: []
47
-
48
- files:
44
+ files:
49
45
  - lib/zucker/default.rb
50
- - lib/zucker/qq.rb
51
- - lib/zucker/all.rb
46
+ - lib/zucker/mm.rb
47
+ - lib/zucker/class_to_proc.rb
48
+ - lib/zucker/file.rb
49
+ - lib/zucker/enumerable.rb
50
+ - lib/zucker/env.rb
51
+ - lib/zucker/tap.rb
52
+ - lib/zucker/extensions.rb
53
+ - lib/zucker/egonil.rb
54
+ - lib/zucker/binding.rb
55
+ - lib/zucker/iterate.rb
56
+ - lib/zucker/hash.rb
57
+ - lib/zucker/oo.rb
58
+ - lib/zucker/unary.rb
59
+ - lib/zucker/object.rb
52
60
  - lib/zucker/string.rb
53
- - lib/zucker/sandbox.rb
54
- - lib/zucker/regexp2proc.rb
55
- - lib/zucker/ivars.rb
61
+ - lib/zucker/qq.rb
62
+ - lib/zucker/to_proc.rb
63
+ - lib/zucker/info.rb
64
+ - lib/zucker/os.rb
65
+ - lib/zucker/regexp_to_proc.rb
56
66
  - lib/zucker/dd.rb
67
+ - lib/zucker/array2proc.rb
68
+ - lib/zucker/hash2proc.rb
69
+ - lib/zucker/shortcuts.rb
70
+ - lib/zucker/kernel.rb
57
71
  - lib/zucker/class2proc.rb
58
- - lib/zucker/enumerable.rb
72
+ - lib/zucker/sandbox.rb
73
+ - lib/zucker/ruby_version.rb
59
74
  - lib/zucker/alias_for.rb
60
- - lib/zucker/control.rb
61
75
  - lib/zucker/array_to_proc.rb
62
- - lib/zucker/unary.rb
63
- - lib/zucker/hash.rb
64
- - lib/zucker/hash2proc.rb
65
- - lib/zucker/regexp_to_proc.rb
66
- - lib/zucker/tap.rb
67
76
  - lib/zucker/blank.rb
77
+ - lib/zucker/debug.rb
78
+ - lib/zucker/regexp2proc.rb
79
+ - lib/zucker/hash_to_proc.rb
80
+ - lib/zucker/control.rb
81
+ - lib/zucker/square_brackets_for.rb
82
+ - lib/zucker/case.rb
83
+ - lib/zucker/ivars.rb
84
+ - lib/zucker/cc.rb
68
85
  - lib/zucker/not.rb
69
- - lib/zucker/array2proc.rb
70
- - lib/zucker/info.rb
71
- - lib/zucker/array.rb
72
- - lib/zucker/binding.rb
73
- - lib/zucker/extensions.rb
74
- - lib/zucker/mm.rb
75
- - lib/zucker/oo.rb
86
+ - lib/zucker/union.rb
76
87
  - lib/zucker/aliases.rb
77
- - lib/zucker/to_proc.rb
78
- - lib/zucker/iterate.rb
79
- - lib/zucker/egonil.rb
80
88
  - lib/zucker/mcopy.rb
81
- - lib/zucker/shortcuts.rb
82
- - lib/zucker/hash_to_proc.rb
83
- - lib/zucker/square_brackets_for.rb
84
- - lib/zucker/file.rb
85
- - lib/zucker/kernel.rb
89
+ - lib/zucker/all.rb
90
+ - lib/zucker/array.rb
86
91
  - lib/zucker/engine.rb
87
92
  - lib/zucker/regexp_visualize.rb
88
- - lib/zucker/class_to_proc.rb
89
- - lib/zucker/os.rb
90
- - lib/zucker/object.rb
91
- - lib/zucker/cc.rb
92
- - lib/zucker/debug.rb
93
- - lib/zucker/env.rb
94
- - lib/zucker/version.rb
95
- - lib/zucker/union.rb
96
93
  - lib/zucker.rb
94
+ - spec/union_spec.rb
97
95
  - spec/cc_spec.rb
96
+ - spec/tap_spec.rb
98
97
  - spec/iterate_spec.rb
99
- - spec/kernel_spec.rb
100
- - spec/union_spec.rb
98
+ - spec/square_brackets_for_spec.rb
101
99
  - spec/string_spec.rb
102
- - spec/tap_spec.rb
103
- - spec/unary_spec.rb
104
- - spec/regexp_to_proc_spec.rb
105
- - spec/egonil_spec.rb
106
- - spec/regexp_visualize_spec.rb
107
- - spec/ivars_spec.rb
100
+ - spec/engine_spec.rb
108
101
  - spec/sandbox_spec.rb
109
- - spec/array_to_proc_spec.rb
102
+ - spec/alias_for_spec.rb
103
+ - spec/ivars_spec.rb
104
+ - spec/enumerable_spec.rb
105
+ - spec/regexp_visualize_spec.rb
106
+ - spec/case_spec.rb
107
+ - spec/egonil_spec.rb
108
+ - spec/blank_spec.rb
109
+ - spec/mcopy_spec.rb
110
110
  - spec/hash_spec.rb
111
+ - spec/mm_spec.rb
112
+ - spec/ruby_version_spec.rb
111
113
  - spec/spec_helper.rb
114
+ - spec/not_spec.rb
115
+ - spec/unary_spec.rb
112
116
  - spec/hash_to_proc_spec.rb
113
- - spec/binding_spec.rb
114
- - spec/mcopy_spec.rb
117
+ - spec/oo_spec.rb
118
+ - spec/regexp_to_proc_spec.rb
115
119
  - spec/qq_spec.rb
116
- - spec/aliases_spec.rb
117
- - spec/engine_spec.rb
120
+ - spec/binding_spec.rb
118
121
  - spec/dd_spec.rb
119
- - spec/square_brackets_for_spec.rb
120
- - spec/enumerable_spec.rb
121
- - spec/version_spec.rb
122
- - spec/blank_spec.rb
123
- - spec/alias_for_spec.rb
124
- - spec/mm_spec.rb
122
+ - spec/kernel_spec.rb
125
123
  - spec/array_spec.rb
126
- - spec/os_spec.rb
127
- - spec/not_spec.rb
128
124
  - spec/class_to_proc_spec.rb
129
- - spec/oo_spec.rb
130
- - spec/info_spec.rb
125
+ - spec/os_spec.rb
131
126
  - spec/file_spec.rb
132
- - desc/hash_to_proc.yaml
133
- - desc/engine.yaml
134
- - desc/iterate.yaml
135
- - desc/unary.yaml
136
- - desc/not.yaml
137
- - desc/ivars.yaml
138
- - desc/info.yaml
139
- - desc/regexp_visualize.yaml
140
- - desc/array_to_proc.yaml
127
+ - spec/info_spec.rb
128
+ - spec/array_to_proc_spec.rb
129
+ - spec/aliases_spec.rb
141
130
  - desc/array.yaml
142
- - desc/cc.yaml
143
- - desc/square_brackets_for.yaml
144
- - desc/class_to_proc.yaml
145
- - desc/mm.yaml
146
131
  - desc/regexp_to_proc.yaml
147
- - desc/file.yaml
148
- - desc/mcopy.yaml
149
- - desc/enumerable.yaml
150
- - desc/qq.yaml
151
- - desc/union.yaml
152
- - desc/kernel.yaml
132
+ - desc/array_to_proc.yaml
153
133
  - desc/dd.yaml
154
- - desc/hash.yaml
155
- - desc/aliases.yaml
134
+ - desc/kernel.yaml
135
+ - desc/hash_to_proc.yaml
136
+ - desc/mm.yaml
137
+ - desc/alias_for.yaml
138
+ - desc/union.yaml
156
139
  - desc/sandbox.yaml
157
- - desc/version.yaml
158
140
  - desc/blank.yaml
141
+ - desc/ruby_version.yaml
142
+ - desc/cc.yaml
143
+ - desc/case.yaml
144
+ - desc/oo.yaml
145
+ - desc/not.yaml
146
+ - desc/aliases.yaml
147
+ - desc/regexp_visualize.yaml
148
+ - desc/unary.yaml
149
+ - desc/qq.yaml
150
+ - desc/egonil.yaml
151
+ - desc/engine.yaml
159
152
  - desc/tap.yaml
153
+ - desc/hash.yaml
154
+ - desc/class_to_proc.yaml
160
155
  - desc/string.yaml
161
- - desc/alias_for.yaml
162
- - desc/os.yaml
163
- - desc/oo.yaml
164
156
  - desc/binding.yaml
165
- - desc/egonil.yaml
157
+ - desc/mcopy.yaml
158
+ - desc/file.yaml
159
+ - desc/iterate.yaml
160
+ - desc/ivars.yaml
161
+ - desc/enumerable.yaml
162
+ - desc/square_brackets_for.yaml
163
+ - desc/os.yaml
164
+ - desc/info.yaml
166
165
  - Rakefile
167
166
  - zucker.gemspec
168
167
  - MIT-LICENSE
@@ -172,31 +171,30 @@ files:
172
171
  - doc/zucker_doc.html
173
172
  - .gemtest
174
173
  homepage: http://rubyzucker.info
175
- licenses:
174
+ licenses:
176
175
  - MIT
177
- post_install_message: " \xE2\x94\x8C\xE2\x94\x80\xE2\x94\x80 info \xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x90\n J-_-L \xE2\x94\x82 http://rubyzucker.info \xE2\x94\x82\n \xE2\x94\x9C\xE2\x94\x80\xE2\x94\x80 usage \xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\xA4\n \xE2\x94\x82 require 'zucker/all' \xE2\x94\x82\n \xE2\x94\x82 # or \xE2\x94\x82\n \xE2\x94\x82 require 'zucker/<name> \xE2\x94\x82\n \xE2\x94\x94\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x80\xE2\x94\x98"
176
+ post_install_message: ! " ┌── info ────────────────┐\n J-_-L http://rubyzucker.info
177
+ │\n ├── usage ───────────────┤\n │ require 'zucker/all' │\n │
178
+ # or │\n │ require 'zucker/<name> │\n └────────────────────────┘"
178
179
  rdoc_options: []
179
-
180
- require_paths:
180
+ require_paths:
181
181
  - lib
182
- required_ruby_version: !ruby/object:Gem::Requirement
182
+ required_ruby_version: !ruby/object:Gem::Requirement
183
183
  none: false
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
184
+ requirements:
185
+ - - ! '>='
186
+ - !ruby/object:Gem::Version
187
187
  version: 1.8.7
188
- required_rubygems_version: !ruby/object:Gem::Requirement
188
+ required_rubygems_version: !ruby/object:Gem::Requirement
189
189
  none: false
190
- requirements:
191
- - - ">="
192
- - !ruby/object:Gem::Version
193
- version: "0"
190
+ requirements:
191
+ - - ! '>='
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
194
  requirements: []
195
-
196
195
  rubyforge_project:
197
- rubygems_version: 1.8.1
196
+ rubygems_version: 1.8.11
198
197
  signing_key:
199
198
  specification_version: 3
200
199
  summary: Many little helpers that sweeten your Ruby code :).
201
200
  test_files: []
202
-