rake-compiler 0.7.5 → 0.7.6

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/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ === 0.7.6 / 2011-02-04
2
+
3
+ * Bugfixes:
4
+ * Prefer Psych over Syck for YAML parsing on Ruby 1.9.2. [tenderlove]
5
+
1
6
  === 0.7.5 / 2010-11-25
2
7
 
3
8
  * Enhancements:
data/Isolate CHANGED
@@ -1,5 +1,3 @@
1
- options :path => 'isolated'
2
-
3
1
  gem 'rake'
4
2
  gem 'rspec', '~> 1.3.1'
5
3
  gem 'cucumber', '~> 0.9.4'
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2008 Luis Lavena.
1
+ Copyright (c) 2008-2011 Luis Lavena.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.rdoc CHANGED
@@ -1,18 +1,24 @@
1
- = rake-compiler
1
+ = What is rake-compiler?
2
2
 
3
- rake-compiler aims to help Gem developers deal with Ruby extensions, simplifying
4
- code and reducing duplication.
3
+ rake-compiler is first and foremost a productivity tool for Ruby developers.
4
+ It's goal is to make the busy developer's life easier by simplifying the building
5
+ and packaging of Ruby extensions by simplifying code and reducing duplication.
5
6
 
6
- It followss *convention over configuration* and sets a standardized structure to
7
- build and package both C and Java extensions in your gems.
7
+ It follows *convention over configuration* by advocating a standardized build and
8
+ package structure for both C and Java based RubyGems.
8
9
 
9
- This is the result of experiences dealing with several Gems that required native
10
- extensions across platforms and different user configurations where details like
11
- portability and clarity of code were lacking.
10
+ rake-compiler is the result of many hard-won experiences dealing with several
11
+ diverse RubyGems that provided native extensions for different platforms and
12
+ different user configurations in different ways. Details such as differences in
13
+ code portability, differences in code clarity, and differences in project directory
14
+ structure often made it very difficult for newcomers to those RubyGems.
12
15
 
13
- == An Overview
16
+ From these challenges, rake-compiler was born with the single-minded goal of
17
+ making the busy RubyGem developer's life much less difficult.
14
18
 
15
- Let's summarize what rake-compiler provides:
19
+ == Feature Overview
20
+
21
+ Some of the benefits rake-compiler provides include:
16
22
 
17
23
  * No custom rake tasks required. Less code duplication and errors.
18
24
 
@@ -21,28 +27,30 @@ Let's summarize what rake-compiler provides:
21
27
  * Painlessly build extensions for different Ruby implementations (JRuby,
22
28
  Rubinius and MRI).
23
29
 
24
- * Allow multiple extensions be compiled inside the same gem.
30
+ * Allow multiple extensions to be compiled inside the same gem.
25
31
 
26
- * Mimics RubyGems installation process, so helps as a test environment.
32
+ * Painlessly build "fat" native gems for Windows users (from Linux or OSX).
27
33
 
28
- * Simplify cross platform compilation of extensions (target Windows from Linux).
34
+ * Mimics RubyGems standard installation process, helping as a test environment.
29
35
 
30
- == I'm sold! show me how to use it! (Installation)
36
+ * Simplifies cross platform extension compilation (targeting Windows from Linux).
31
37
 
32
- Usage of rake-compiler is pretty much straight forward.
38
+ == OK, I'm sold! Show me how to install it!
33
39
 
34
- First, you need to install the gem:
40
+ Simple:
35
41
 
36
42
  $ gem install rake-compiler
37
43
 
38
- == Now what? (Usage)
44
+ == That's easy. How do I use it?
39
45
 
40
- Now that you have the gem installed, let's give your project some structure.
46
+ Now that you have installed rake-compiler, it's time to give your project a
47
+ standardized structure.
41
48
 
42
- === Structure
49
+ === Using a standardized project structure
43
50
 
44
- Let's say we want to compile an extension called 'hello_world', so we should
45
- organize the code and folders that will help rake-compiler do its job:
51
+ Let's say you want to compile an extension called 'hello_world'. Organizing
52
+ your project's code tree in the following way will help rake-compiler do
53
+ its job:
46
54
 
47
55
  |-- ext
48
56
  | `-- hello_world
@@ -52,12 +60,14 @@ organize the code and folders that will help rake-compiler do its job:
52
60
  |-- lib
53
61
  `-- Rakefile
54
62
 
55
- TIP: Having a consistent folder structure will help developers and newcomers
56
- to find code and also contribute back to your project more easily.
63
+ TIP: Having a consistent project directory structure will help developers and
64
+ newcomers find and understand your code, making it easier for them to
65
+ contribute back to your project.
57
66
 
58
- === Adding the code
67
+ === Adding the code to enable rake-compiler
59
68
 
60
- So now it's time to introduce the code to compile our extension:
69
+ Now the fun part. It's time to introduce the code to your projects Rakefile
70
+ to tell it to use rake-compiler to build your extension:
61
71
 
62
72
  # File: Rakefile
63
73
 
@@ -65,9 +75,11 @@ So now it's time to introduce the code to compile our extension:
65
75
 
66
76
  Rake::ExtensionTask.new('hello_world')
67
77
 
68
- Ok, that's it. No other line of code.
78
+ That's it? Yes, that's it! No other lines of code are needed for
79
+ rake-compiler to work its magic.
69
80
 
70
- If we wanted to do the same for a JRuby extension (written in Java):
81
+ If you want to do the same for a JRuby extension written in Java, it's just
82
+ as easy:
71
83
 
72
84
  # File: Rakefile
73
85
 
@@ -75,37 +87,41 @@ If we wanted to do the same for a JRuby extension (written in Java):
75
87
 
76
88
  Rake::JavaExtensionTask.new('hello_world')
77
89
 
78
- === Compile process
90
+ === The simple process
79
91
 
80
- Those *two* lines of code automatically added the needed rake tasks to build
81
- the hello_world extension. Running Rake on 1.8.x/1.9 (MRI):
92
+ Those *two* simple lines of code automatically added the Rake tasks needed to
93
+ build your 'hello_world' extension. For example, checking the Rake tasks on
94
+ MRI Ruby 1.8.x/1.9 returns something similar to:
82
95
 
83
96
  $ rake -T
84
97
  (in /home/user/my_extension)
85
98
  rake compile # Compile the extension(s)
86
99
  rake compile:hello_world # Compile just the hello_world extension
87
100
 
88
- Simply calling <tt>compile</tt>:
101
+ Simply calling <tt>compile</tt> like
89
102
 
90
103
  $ rake compile
91
104
 
92
- Will do all the compile process for us, putting the result extension inside
93
- <tt>lib</tt> directory.
105
+ performs the entire compile and build process for you and places the resulting
106
+ extension inside the <tt>lib</tt> directory of your project.
94
107
 
95
108
  NOTE: Please be aware that building C extensions requires the proper
96
- development environment for your Platform, which includes libraries, headers
97
- and build tools. Check your distro / vendor documentation on how to install it.
109
+ development environment for your Platform, including libraries, headers
110
+ and build tools. Check your distro / vendor documentation on how to install
111
+ these development resources.
98
112
 
99
113
  NOTE: Building Java extensions requires the <tt>javac</tt>, part of the Java
100
114
  Development Kit (JDK). This should be included by default on Mac OS X, and
101
115
  downloadable from http://java.sun.com for other operating systems.
102
116
 
103
- === Generate native gems
117
+ === Generating native RubyGems
104
118
 
105
- A common usage scenario of rake-compiler is generate native gems that bundles
106
- your extensions.
119
+ A common usage scenario for rake-compiler is generating native gems that
120
+ bundle your extensions. As mentioned above, if you have your development
121
+ environment configured correctly, the following examples work even when
122
+ building native gems on Windows systems.
107
123
 
108
- This got over-simplified with <tt>Rake::ExtensionTask</tt>:
124
+ Creating native gems is really easy with rake-compiler's <tt>Rake::ExtensionTask</tt>:
109
125
 
110
126
  # somewhere in your Rakefile, define your gem spec
111
127
  spec = Gem::Specification.new do |s|
@@ -115,13 +131,14 @@ This got over-simplified with <tt>Rake::ExtensionTask</tt>:
115
131
  end
116
132
 
117
133
  # add your default gem packing task
118
- Rake::GemPackageTask.new(spec) do |pkg|
134
+ Gem::PackageTask.new(spec) do |pkg|
119
135
  end
120
136
 
121
- # feed your ExtensionTask with your spec
137
+ # feed the ExtensionTask with your spec
122
138
  Rake::ExtensionTask.new('hello_world', spec)
123
139
 
124
- Now, as usual, you can build your pure-ruby gem (standard output):
140
+ As expected, you can still build your pure-ruby gem in the usual way
141
+ (standard output) by running:
125
142
 
126
143
  $ rake gem
127
144
  (in /projects/oss/my_gem.git)
@@ -132,7 +149,8 @@ Now, as usual, you can build your pure-ruby gem (standard output):
132
149
  File: my_gem-0.1.0.gem
133
150
  mv my_gem-0.1.0.gem pkg/my_gem-0.1.0.gem
134
151
 
135
- Plus, you have the functionality to build native versions of the gem:
152
+ Plus, rake-compiler tasks give you the extra functionality needed to build
153
+ native gems by running:
136
154
 
137
155
  # rake native gem
138
156
  (... compilation output ...)
@@ -148,9 +166,10 @@ Plus, you have the functionality to build native versions of the gem:
148
166
  File: my_gem-0.1.0-x86-mingw32.gem
149
167
  mv my_gem-0.1.0-x86-mingw32.gem pkg/my_gem-0.1.0-x86-mingw32.gem
150
168
 
151
- You get two gems for the price of one.
169
+ Did you notice that you get two gems for the price of one? How's that for a
170
+ time saver?
152
171
 
153
- And the same for JRuby extensions:
172
+ Similarly, it's just as easy to do the same thing for JRuby extensions:
154
173
 
155
174
  # rake java gem
156
175
  (... compilation output ...)
@@ -167,72 +186,85 @@ And the same for JRuby extensions:
167
186
  mv my_gem-0.1.0-java.gem pkg/my_gem-0.1.0-java.gem
168
187
 
169
188
 
170
- === What about breaking the standards? (Customization)
189
+ === Great, but can I use a non-standard project structure?
171
190
 
172
- In case you want to bend the convention established, rake-compiler let you
173
- personalize several settings for <tt>Rake::ExtensionTask</tt>:
191
+ Yes you can! While the conventional project structure is recommended, you may
192
+ want, or need, to tweak those conventions. Rake-compiler allows you to customize
193
+ several settings for <tt>Rake::ExtensionTask</tt>:
174
194
 
175
195
  Rake::ExtensionTask.new do |ext|
176
196
  ext.name = 'hello_world' # indicate the name of the extension.
177
197
  ext.ext_dir = 'ext/weird_world' # search for 'hello_world' inside it.
178
198
  ext.lib_dir = 'lib/my_lib' # put binaries into this folder.
179
- ext.config_script = 'custom_extconf.rb' # use instead of 'extconf.rb' default
199
+ ext.config_script = 'custom_extconf.rb' # use instead of the default 'extconf.rb'.
180
200
  ext.tmp_dir = 'tmp' # temporary folder used during compilation.
181
201
  ext.source_pattern = "*.{c,cpp}" # monitor file changes to allow simple rebuild.
182
- ext.config_options << '--with-foo' # supply additional configure options to config script.
183
- ext.gem_spec = spec # optional indicate which gem specification
184
- # will be used to based on.
202
+ ext.config_options << '--with-foo' # supply additional options to configure script.
203
+ ext.gem_spec = spec # optionally indicate which gem specification
204
+ # will be used.
185
205
  end
186
206
 
187
- == Future is now: Cross compilation
207
+ == Cross compilation - the future is now.
208
+
209
+ Rake-compiler also provides a standardized way to generate, from either Linux
210
+ or OSX, extensions and gem binaries for your Windows users!
188
211
 
189
- rake-compiler provides now an standardized way to generate, from Linux or OSX
190
- both extensions and gem binaries for Windows!
212
+ How can this be you say? Simple, rake-compiler's cross compilation features
213
+ take advantage of GCC's host/target capabilities to build 'target' binaries on
214
+ different 'host' OS's.
191
215
 
192
- It takes advantages from GCC host/target to build binaries (for target) on
193
- different OS (hosts).
216
+ === How I do this from Linux or OSX?
194
217
 
195
- === How I enjoy this?
218
+ In addition to having the development tool chain installed (GCC), you also need to
219
+ install your platform's <tt>mingw32</tt> cross compilation package.
196
220
 
197
- Besides having the development tool chain installed (GCC), you should install
198
- also <tt>mingw32</tt> cross compilation package.
221
+ Installation depends upon your operating system/distribution. On Ubuntu and Debian
222
+ host machines, a simple <tt>apt-get install mingw32</tt> will be enough.
199
223
 
200
- Installation depends will depend on your operating system/distribution. On
201
- Ubuntu and Debian machines, a simple <tt>apt-get install mingw32</tt> will be
202
- enough.
224
+ On Arch, <tt>mingw32</tt> is installed by running <tt>pacman -S mingw32-gcc</tt>
203
225
 
204
- On OSX, mingw32 is available via MacPorts: <tt>port install i386-mingw32-gcc</tt>
205
- (ensure you update your ports tree before hand as <tt>mingw32</tt> has been
206
- been broken).
226
+ On OSX, <tt>mingw32</tt> is available via MacPorts via <tt>port install i386-mingw32-gcc</tt>
227
+ (ensure your ports tree is updated as <tt>mingw32</tt> has been broken in the past).
207
228
 
208
- === I have my tool-chain, now what?
229
+ === I've got my tool-chain installed, now what?
209
230
 
210
- You need to build Ruby for Windows.
231
+ First, you need to build Ruby for Windows on your Linux or OSX system.
211
232
 
212
- Relax, no need to freak out! Let rake-compiler do it for you:
233
+ Relax, no need to freak out! Let rake-compiler do all the heavy lifting for you:
213
234
 
214
235
  rake-compiler cross-ruby
215
236
 
216
- And you're done. It will automatically download, configure and compile latest
217
- stable version of Ruby for Windows, and place it into <tt>~/.rake-compiler</tt>
237
+ And you're done. It will automatically download, configure and compile the latest
238
+ stable version of Ruby for Windows, and place it into your <tt>~/.rake-compiler</tt>
239
+ directory.
240
+
241
+ This will create <tt>~/.rake-compiler/config.yml</tt> file so that rake-compiler
242
+ knows where to find the <tt>rbconfig.rb</tt> file that matches the Ruby version
243
+ on the Windows host system you're cross-compiling for. An example:
244
+
245
+ # File: ~/.rake-compiler/config.yml
218
246
 
219
- If, instead, you want to build another version than the default one, please
247
+ rbconfig-1.8.6: /path/to/ruby-1.8.6/rbconfig.rb
248
+ rbconfig-1.8.7: /path/to/ruby-1.8.7/rbconfig.rb
249
+ rbconfig-1.9.2: /path/to/ruby-1.9.2/rbconfig.rb
250
+
251
+ If, instead, you want to build a different Ruby version than the default one, please
220
252
  supply a <tt>VERSION</tt>:
221
253
 
222
254
  rake-compiler cross-ruby VERSION=1.8.6-p114
223
255
 
224
- If you, like me, have multiple versions of MinGW packages, you can specify the
225
- HOST that will be used to cross compile ruby:
256
+ If you, like me, have multiple versions of MinGW packages installed, you can
257
+ specify the HOST that will be used to cross compile Ruby:
226
258
 
227
259
  rake-compiler cross-ruby HOST=i386-mingw32 # (OSX mingw32 port)
228
260
 
229
261
  The host will vary depending on provider (mingw32 versus mingw-w64 projects).
230
- Consult the documentation and website of the MinGW package provider before
231
- reporting any issue.
262
+ Please consult the documentation and website of the MinGW package provider before
263
+ reporting any issues.
232
264
 
233
- === Let's build some gems!
265
+ === OK, let's cross compile some gems!
234
266
 
235
- Now, you only need to use additional options in your extension definition:
267
+ Now, you only need specify a few additional options in your extension definition:
236
268
 
237
269
  Rake::ExtensionTask.new('my_extension', gem_spec) do |ext|
238
270
  ext.cross_compile = true # enable cross compilation (requires cross compile toolchain)
@@ -246,61 +278,73 @@ Now, you only need to use additional options in your extension definition:
246
278
  end
247
279
  end
248
280
 
249
- By default, cross compilation targets 'i386-mingw32' which is default GCC platform
250
- for Ruby.
281
+ By default, cross compilation targets 'i386-mingw32' which is the default GCC
282
+ platform for Ruby.
251
283
 
252
- To target gems for current Ruby official distribution, please force the platform
253
- to the one shown before.
284
+ To target gems for MRI Ruby's current official distribution, please force the
285
+ platform to the one (i386-mswin32) previously shown.
254
286
 
255
- === Magician doing some tricks, don't blink!
287
+ === Warning, magician about to do some tricks, don't blink!
256
288
 
257
- Compiles keeps being simple:
289
+ Cross compiling is still very simple:
258
290
 
259
291
  rake cross compile
260
292
 
261
- And now, build your gems for Windows is just 5 more letters:
293
+ And now, building gems for your Windows users is just 5 more letters:
262
294
 
263
295
  rake cross native gem
264
296
 
265
297
  And you're done, yeah.
266
298
 
267
- === Take it even further
299
+ === But wait, there's more
268
300
 
269
- You can specify against with version of Ruby you want to build the extension:
301
+ You can specify which version of Ruby to build the extension against:
270
302
 
271
303
  rake cross compile RUBY_CC_VERSION=1.8.6
272
304
 
273
- If you installed <tt>1.9.1</tt>, you can do:
305
+ For example, if you installed <tt>1.9.2</tt>, you can do:
274
306
 
275
- rake cross compile RUBY_CC_VERSION=1.9.1
307
+ rake cross compile RUBY_CC_VERSION=1.9.2
276
308
 
277
- Even more, you can target multiple versions (ie. 1.8.6 and 1.9.1):
309
+ Even better, you can target multiple versions (ie. 1.8.6 and 1.9.2) in
310
+ the same gem via:
278
311
 
279
- rake cross compile RUBY_CC_VERSION=1.8.6:1.9.1
312
+ rake cross compile RUBY_CC_VERSION=1.8.6:1.9.2
280
313
 
281
- And more exiting, bundle both binaries in one "fat" Gem:
314
+ And better yet, you can bundle both binary extensions into one so-called "fat"
315
+ gem via:
282
316
 
283
- rake cross native gem RUBY_CC_VERSION=1.8.6:1.9.1
317
+ rake cross native gem RUBY_CC_VERSION=1.8.6:1.9.2
284
318
 
285
- That will place binaries for 1.8 and 1.9 versions of ruby inside <tt>lib_dir</tt>
319
+ That will place binaries for both the 1.8 and 1.9 versions of your Ruby
320
+ extensions inside your project's <tt>lib_dir</tt> directory:
286
321
 
287
322
  lib/1.8/my_extension.so
288
323
  lib/1.9/my_extension.so
289
324
 
290
- Now is up to you to make your gem load the proper one ;-)
325
+ NOTE: building "fat" gems is currently only supported by rake-compiler when
326
+ cross compiling from a Linux or OSX host. Patches are welcome if building
327
+ "fat" gems from Windows hosts is desired, or natively for your platform :-)
328
+
329
+ Now is up to you to make your gem load the proper binary at runtime. Here's a hint ;-)
330
+
331
+ RUBY_VERSION =~ /(\d+.\d+)/
332
+ require "#{$1}/my_extension"
291
333
 
292
334
  === What are you talking about? (Give me examples)
293
335
 
294
- I know all the above sounds like a complete foreign language (it does even for me!). So, what if I show you some examples?
336
+ I know all the above sounds like a complete foreign language (it does even for me!).
337
+ So, what if I show you some examples?
295
338
 
296
- Check our wiki with links to the proper rake files used by many developers and projects and how they use rake-compiler.
339
+ Check our wiki with links to the proper rake files used by many developers and
340
+ projects and how they use rake-compiler.
297
341
 
298
342
  http://github.com/luislavena/rake-compiler/wiki/projects-using-rake-compiler
299
343
 
300
344
  == Future
301
345
 
302
- rake-compiler is a work in progress and we will appreciate feedback during the
303
- development of it! (and contributions too!)
346
+ rake-compiler is a work in progress and we appreciate any and all feedback
347
+ during the development of it! (and contributions too!)
304
348
 
305
349
  You can find more information about rake-compiler:
306
350
 
@@ -4,6 +4,12 @@ require 'rake'
4
4
  require 'rake/clean'
5
5
  require 'rake/tasklib'
6
6
  require 'rbconfig'
7
+
8
+ begin
9
+ require 'psych'
10
+ rescue LoadError
11
+ end
12
+
7
13
  require 'yaml'
8
14
  require 'pathname'
9
15
 
@@ -19,6 +19,12 @@
19
19
 
20
20
  require 'rake'
21
21
  require 'rake/clean'
22
+
23
+ begin
24
+ require 'psych'
25
+ rescue LoadError
26
+ end
27
+
22
28
  require 'yaml'
23
29
 
24
30
  # load compiler helpers
data/tasks/gem.rake CHANGED
@@ -3,7 +3,7 @@ require 'rubygems/package_task'
3
3
  GEM_SPEC = Gem::Specification.new do |s|
4
4
  # basic information
5
5
  s.name = "rake-compiler"
6
- s.version = "0.7.5"
6
+ s.version = "0.7.6"
7
7
  s.platform = Gem::Platform::RUBY
8
8
 
9
9
  # description and details
@@ -18,9 +18,9 @@ GEM_SPEC = Gem::Specification.new do |s|
18
18
  s.add_dependency 'rake'
19
19
 
20
20
  # development dependencies
21
- s.add_development_dependency 'rspec', '~> 1.2.9'
22
- s.add_development_dependency 'cucumber', '~> 0.4.4'
23
- #s.add_development_dependency 'rcov', '~> 0.9.6'
21
+ s.add_development_dependency 'rspec', '~> 1.3.1'
22
+ s.add_development_dependency 'cucumber', '~> 0.9.4'
23
+ #s.add_development_dependency 'rcov', '~> 0.9.9'
24
24
 
25
25
  # components, files and paths
26
26
  s.files = FileList["features/**/*.{feature,rb}", "bin/rake-compiler",
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-compiler
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
5
- prerelease: false
4
+ hash: 15
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 7
9
- - 5
10
- version: 0.7.5
9
+ - 6
10
+ version: 0.7.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Luis Lavena
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-25 00:00:00 -03:00
18
+ date: 2011-02-04 00:00:00 -03:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -40,12 +40,12 @@ dependencies:
40
40
  requirements:
41
41
  - - ~>
42
42
  - !ruby/object:Gem::Version
43
- hash: 13
43
+ hash: 25
44
44
  segments:
45
45
  - 1
46
- - 2
47
- - 9
48
- version: 1.2.9
46
+ - 3
47
+ - 1
48
+ version: 1.3.1
49
49
  type: :development
50
50
  version_requirements: *id002
51
51
  - !ruby/object:Gem::Dependency
@@ -56,12 +56,12 @@ dependencies:
56
56
  requirements:
57
57
  - - ~>
58
58
  - !ruby/object:Gem::Version
59
- hash: 7
59
+ hash: 51
60
60
  segments:
61
61
  - 0
62
+ - 9
62
63
  - 4
63
- - 4
64
- version: 0.4.4
64
+ version: 0.9.4
65
65
  type: :development
66
66
  version_requirements: *id003
67
67
  description: |-
@@ -156,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
156
  requirements: []
157
157
 
158
158
  rubyforge_project: rake-compiler
159
- rubygems_version: 1.3.7
159
+ rubygems_version: 1.5.0
160
160
  signing_key:
161
161
  specification_version: 3
162
162
  summary: Rake-based Ruby Extension (C, Java) task generator.