rake-compiler 0.7.5 → 0.7.6
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/Isolate +0 -2
- data/LICENSE.txt +1 -1
- data/README.rdoc +143 -99
- data/lib/rake/baseextensiontask.rb +6 -0
- data/tasks/bin/cross-ruby.rake +6 -0
- data/tasks/gem.rake +4 -4
- metadata +13 -13
data/History.txt
CHANGED
data/Isolate
CHANGED
data/LICENSE.txt
CHANGED
data/README.rdoc
CHANGED
@@ -1,18 +1,24 @@
|
|
1
|
-
= rake-compiler
|
1
|
+
= What is rake-compiler?
|
2
2
|
|
3
|
-
rake-compiler
|
4
|
-
|
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
|
7
|
-
|
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
|
-
|
10
|
-
|
11
|
-
|
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
|
-
|
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
|
-
|
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
|
-
*
|
32
|
+
* Painlessly build "fat" native gems for Windows users (from Linux or OSX).
|
27
33
|
|
28
|
-
*
|
34
|
+
* Mimics RubyGems standard installation process, helping as a test environment.
|
29
35
|
|
30
|
-
|
36
|
+
* Simplifies cross platform extension compilation (targeting Windows from Linux).
|
31
37
|
|
32
|
-
|
38
|
+
== OK, I'm sold! Show me how to install it!
|
33
39
|
|
34
|
-
|
40
|
+
Simple:
|
35
41
|
|
36
42
|
$ gem install rake-compiler
|
37
43
|
|
38
|
-
==
|
44
|
+
== That's easy. How do I use it?
|
39
45
|
|
40
|
-
Now that you have
|
46
|
+
Now that you have installed rake-compiler, it's time to give your project a
|
47
|
+
standardized structure.
|
41
48
|
|
42
|
-
===
|
49
|
+
=== Using a standardized project structure
|
43
50
|
|
44
|
-
Let's say
|
45
|
-
|
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
|
56
|
-
|
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
|
-
|
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
|
-
|
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
|
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
|
-
===
|
90
|
+
=== The simple process
|
79
91
|
|
80
|
-
Those *two* lines of code automatically added the
|
81
|
-
|
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
|
-
|
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,
|
97
|
-
and build tools. Check your distro / vendor documentation on how to install
|
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
|
-
===
|
117
|
+
=== Generating native RubyGems
|
104
118
|
|
105
|
-
A common usage scenario
|
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
|
-
|
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
|
-
|
134
|
+
Gem::PackageTask.new(spec) do |pkg|
|
119
135
|
end
|
120
136
|
|
121
|
-
# feed
|
137
|
+
# feed the ExtensionTask with your spec
|
122
138
|
Rake::ExtensionTask.new('hello_world', spec)
|
123
139
|
|
124
|
-
|
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
|
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
|
-
|
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
|
-
|
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
|
-
===
|
189
|
+
=== Great, but can I use a non-standard project structure?
|
171
190
|
|
172
|
-
|
173
|
-
|
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'
|
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
|
183
|
-
ext.gem_spec = spec #
|
184
|
-
# will be used
|
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
|
-
==
|
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
|
-
|
190
|
-
|
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
|
-
|
193
|
-
different OS (hosts).
|
216
|
+
=== How I do this from Linux or OSX?
|
194
217
|
|
195
|
-
|
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
|
-
|
198
|
-
|
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
|
-
|
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
|
205
|
-
(ensure
|
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
|
229
|
+
=== I've got my tool-chain installed, now what?
|
209
230
|
|
210
|
-
|
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
|
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
|
-
|
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
|
225
|
-
HOST that will be used to cross compile
|
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
|
-
|
231
|
-
reporting any
|
262
|
+
Please consult the documentation and website of the MinGW package provider before
|
263
|
+
reporting any issues.
|
232
264
|
|
233
|
-
===
|
265
|
+
=== OK, let's cross compile some gems!
|
234
266
|
|
235
|
-
Now, you only need
|
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
|
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
|
253
|
-
to the one shown
|
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
|
-
===
|
287
|
+
=== Warning, magician about to do some tricks, don't blink!
|
256
288
|
|
257
|
-
|
289
|
+
Cross compiling is still very simple:
|
258
290
|
|
259
291
|
rake cross compile
|
260
292
|
|
261
|
-
And now,
|
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
|
-
===
|
299
|
+
=== But wait, there's more
|
268
300
|
|
269
|
-
You can specify
|
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
|
-
|
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.
|
307
|
+
rake cross compile RUBY_CC_VERSION=1.9.2
|
276
308
|
|
277
|
-
Even
|
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.
|
312
|
+
rake cross compile RUBY_CC_VERSION=1.8.6:1.9.2
|
280
313
|
|
281
|
-
And
|
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.
|
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
|
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
|
-
|
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!).
|
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
|
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
|
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
|
|
data/tasks/bin/cross-ruby.rake
CHANGED
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.
|
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.
|
22
|
-
s.add_development_dependency 'cucumber', '~> 0.
|
23
|
-
#s.add_development_dependency 'rcov', '~> 0.9.
|
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:
|
5
|
-
prerelease:
|
4
|
+
hash: 15
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 7
|
9
|
-
-
|
10
|
-
version: 0.7.
|
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:
|
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:
|
43
|
+
hash: 25
|
44
44
|
segments:
|
45
45
|
- 1
|
46
|
-
-
|
47
|
-
-
|
48
|
-
version: 1.
|
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:
|
59
|
+
hash: 51
|
60
60
|
segments:
|
61
61
|
- 0
|
62
|
+
- 9
|
62
63
|
- 4
|
63
|
-
|
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.
|
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.
|