hen 0.4.4 → 0.4.5
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/ChangeLog +7 -0
- data/README +1 -1
- data/bin/hen +2 -2
- data/lib/hen/cli.rb +1 -2
- data/lib/hen/dsl.rb +3 -3
- data/lib/hen/version.rb +1 -1
- data/lib/hens/gem.rake +67 -6
- metadata +9 -9
data/ChangeLog
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
= Revision history for hen
|
2
2
|
|
3
|
+
== 0.4.5 [2012-01-20]
|
4
|
+
|
5
|
+
* Publish native Gems.
|
6
|
+
* Build and publish Meta-Gems.
|
7
|
+
* Renamed Meta-Gem option 'extras' to 'dependencies'.
|
8
|
+
* Fixed Ruby warnings.
|
9
|
+
|
3
10
|
== 0.4.4 [2012-01-18]
|
4
11
|
|
5
12
|
* Some extension task improvements.
|
data/README
CHANGED
data/bin/hen
CHANGED
@@ -57,7 +57,7 @@ abort USAGE if ARGV.empty?
|
|
57
57
|
|
58
58
|
EXAMPLE = File.expand_path('../../example', __FILE__)
|
59
59
|
|
60
|
-
case
|
60
|
+
case arg = ARGV.shift
|
61
61
|
when 'help', '-h', '--help'
|
62
62
|
puts USAGE
|
63
63
|
puts
|
@@ -173,5 +173,5 @@ case action = ARGV.shift
|
|
173
173
|
# a particular hen/task is currently available).
|
174
174
|
abort 'Sorry, not yet available...'
|
175
175
|
else
|
176
|
-
abort "Illegal action: #{
|
176
|
+
abort "Illegal action: #{arg}\n#{USAGE}"
|
177
177
|
end
|
data/lib/hen/cli.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# #
|
4
4
|
# hen -- Just a Rake helper #
|
5
5
|
# #
|
6
|
-
# Copyright (C) 2007-
|
6
|
+
# Copyright (C) 2007-2012 University of Cologne, #
|
7
7
|
# Albertus-Magnus-Platz, #
|
8
8
|
# 50923 Cologne, Germany #
|
9
9
|
# #
|
@@ -26,7 +26,6 @@
|
|
26
26
|
###############################################################################
|
27
27
|
#++
|
28
28
|
|
29
|
-
require 'hen'
|
30
29
|
require 'etc'
|
31
30
|
require 'erb'
|
32
31
|
require 'highline/import'
|
data/lib/hen/dsl.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# #
|
4
4
|
# A component of hen, the Rake helper. #
|
5
5
|
# #
|
6
|
-
# Copyright (C) 2007-
|
6
|
+
# Copyright (C) 2007-2012 University of Cologne, #
|
7
7
|
# Albertus-Magnus-Platz, #
|
8
8
|
# 50923 Cologne, Germany #
|
9
9
|
# #
|
@@ -26,8 +26,8 @@
|
|
26
26
|
###############################################################################
|
27
27
|
#++
|
28
28
|
|
29
|
-
require 'hen'
|
30
29
|
require 'nuggets/file/which'
|
30
|
+
require 'nuggets/object/singleton_class'
|
31
31
|
|
32
32
|
class Hen
|
33
33
|
|
@@ -323,7 +323,7 @@ class Hen
|
|
323
323
|
def extend_object(object, *blocks)
|
324
324
|
blocks << Proc.new if block_given?
|
325
325
|
|
326
|
-
singleton_class =
|
326
|
+
singleton_class = object.singleton_class
|
327
327
|
|
328
328
|
blocks.compact.reverse_each { |block|
|
329
329
|
singleton_class.class_eval(&block)
|
data/lib/hen/version.rb
CHANGED
data/lib/hens/gem.rake
CHANGED
@@ -41,7 +41,7 @@ Hen :gem => :rdoc do
|
|
41
41
|
|
42
42
|
extension_options = gem_options.delete(:extension) || {}
|
43
43
|
|
44
|
-
meta_gems = Array(gem_options.delete(:meta))
|
44
|
+
meta_gems, meta_gem_specs = Array(gem_options.delete(:meta)), []
|
45
45
|
|
46
46
|
gem_name = gem_options[:name] ||= project_name(rf_config)
|
47
47
|
abort 'Gem name missing' unless gem_name
|
@@ -165,7 +165,7 @@ Hen :gem => :rdoc do
|
|
165
165
|
|
166
166
|
noauto = meta_gem_options.delete(:noauto)
|
167
167
|
|
168
|
-
meta_gem_spec = Gem::Specification.new { |spec|
|
168
|
+
meta_gem_specs << meta_gem_spec = Gem::Specification.new { |spec|
|
169
169
|
|
170
170
|
### inherit from original spec
|
171
171
|
|
@@ -189,7 +189,7 @@ Hen :gem => :rdoc do
|
|
189
189
|
|
190
190
|
[
|
191
191
|
[gem_options[:name], gem_options[:version]],
|
192
|
-
*Array(meta_gem_options.delete(:
|
192
|
+
*Array(meta_gem_options.delete(:dependencies))
|
193
193
|
].each { |dependency|
|
194
194
|
spec.add_dependency(*dependency)
|
195
195
|
}
|
@@ -201,6 +201,10 @@ Hen :gem => :rdoc do
|
|
201
201
|
}
|
202
202
|
|
203
203
|
meta_prefix = "gem:meta:#{meta_gem_name = meta_gem_spec.name}"
|
204
|
+
meta_class = meta_gem_spec.singleton_class
|
205
|
+
|
206
|
+
meta_class.send(:define_method, :auto?) { !noauto }
|
207
|
+
meta_class.send(:define_method, :taskname) { meta_prefix }
|
204
208
|
|
205
209
|
desc "Display the #{meta_gem_name} gem specification"
|
206
210
|
task "#{meta_prefix}:spec" do
|
@@ -229,6 +233,31 @@ Hen :gem => :rdoc do
|
|
229
233
|
end
|
230
234
|
}
|
231
235
|
|
236
|
+
meta_gem_specs.each { |meta_gem_spec|
|
237
|
+
|
238
|
+
meta_pkg_task = gem_klass.new(meta_gem_spec)
|
239
|
+
|
240
|
+
taskname = meta_gem_spec.taskname
|
241
|
+
|
242
|
+
gem_file = File.basename(meta_gem_spec.cache_file)
|
243
|
+
gem_path = File.join(package_dir = meta_pkg_task.package_dir, gem_file)
|
244
|
+
|
245
|
+
desc "Build the meta gem file #{gem_file}"
|
246
|
+
task taskname => gem_path
|
247
|
+
|
248
|
+
Gem.configuration.verbose = trace = Rake.application.options.trace
|
249
|
+
|
250
|
+
file gem_path => package_dir do
|
251
|
+
when_writing "Creating #{meta_gem_spec.file_name}" do
|
252
|
+
Gem::Builder.new(meta_gem_spec).build
|
253
|
+
verbose(trace) { mv gem_file, package_dir }
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
257
|
+
%w[package gem].each { |t| task t => taskname } if meta_gem_spec.auto?
|
258
|
+
|
259
|
+
}
|
260
|
+
|
232
261
|
begin
|
233
262
|
require 'rake/extensiontask' unless gem_spec.extensions.empty?
|
234
263
|
rescue LoadError
|
@@ -255,7 +284,7 @@ Hen :gem => :rdoc do
|
|
255
284
|
ENV['RUBY_CC_VERSION'] ||= Array(ruby_versions).join(':')
|
256
285
|
end
|
257
286
|
|
258
|
-
Rake::ExtensionTask.new(nil, gem_spec) { |ext|
|
287
|
+
extension_task = Rake::ExtensionTask.new(nil, gem_spec) { |ext|
|
259
288
|
set_options(ext, extension_options, 'Extension')
|
260
289
|
}
|
261
290
|
|
@@ -270,7 +299,8 @@ Hen :gem => :rdoc do
|
|
270
299
|
|
271
300
|
rubygems do |rg_pool|
|
272
301
|
|
273
|
-
|
302
|
+
gem_base = pkg_task.package_dir
|
303
|
+
gem_path = File.join(gem_base, gem_spec.file_name)
|
274
304
|
|
275
305
|
desc 'Create the gem and install it'
|
276
306
|
task 'gem:install' => :gem do
|
@@ -282,12 +312,43 @@ Hen :gem => :rdoc do
|
|
282
312
|
rg_pool.call.push(gem_path)
|
283
313
|
end
|
284
314
|
|
315
|
+
meta_gem_specs.each { |meta_gem_spec|
|
316
|
+
taskname = meta_gem_spec.taskname
|
317
|
+
|
318
|
+
desc "Create the meta gem #{meta_gem_spec.name} and upload it to RubyGems.org"
|
319
|
+
task "#{taskname}:push" => taskname do
|
320
|
+
rg_pool.call.push(File.join(gem_base, meta_gem_spec.file_name))
|
321
|
+
end
|
322
|
+
|
323
|
+
task 'gem:push:meta' => "#{taskname}:push" if meta_gem_spec.auto?
|
324
|
+
}
|
325
|
+
|
326
|
+
if have_task?('gem:push:meta')
|
327
|
+
desc 'Create the meta gems and upload them to RubyGems.org'
|
328
|
+
task 'gem:push:meta'
|
329
|
+
|
330
|
+
task 'gem:push' => 'gem:push:meta'
|
331
|
+
end
|
332
|
+
|
333
|
+
if extension_task
|
334
|
+
platforms = Array(extension_task.cross_platform).join(',')
|
335
|
+
gems_glob = gem_path.sub(/(?=\.gem\z)/, "-{#{platforms}}")
|
336
|
+
|
337
|
+
desc 'Create the native gems and upload them to RubyGems.org'
|
338
|
+
task 'gem:push:native' => 'gem:native' do
|
339
|
+
rg = rg_pool.call
|
340
|
+
Dir[gems_glob].each { |native_gem| rg.push(native_gem) }
|
341
|
+
end
|
342
|
+
|
343
|
+
task 'gem:push' => 'gem:push:native'
|
344
|
+
end
|
345
|
+
|
285
346
|
desc release_desc; release_desc = nil
|
286
347
|
task :release => 'gem:push'
|
287
348
|
|
288
349
|
end
|
289
350
|
|
290
|
-
rubyforge do |
|
351
|
+
rubyforge do |_, rf_pool|
|
291
352
|
|
292
353
|
desc 'Package and upload the release to RubyForge'
|
293
354
|
task 'release:rubyforge' => [:package, 'doc:publish:rubyforge'] do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 5
|
10
|
+
version: 0.4.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jens Wille
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-01-
|
18
|
+
date: 2012-01-20 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: ruby-nuggets
|
@@ -85,14 +85,14 @@ licenses: []
|
|
85
85
|
|
86
86
|
post_install_message:
|
87
87
|
rdoc_options:
|
88
|
-
- --
|
89
|
-
- UTF-8
|
90
|
-
- --title
|
91
|
-
- hen Application documentation (v0.4.4)
|
88
|
+
- --line-numbers
|
92
89
|
- --main
|
93
90
|
- README
|
94
91
|
- --all
|
95
|
-
- --
|
92
|
+
- --charset
|
93
|
+
- UTF-8
|
94
|
+
- --title
|
95
|
+
- hen Application documentation (v0.4.5)
|
96
96
|
require_paths:
|
97
97
|
- lib
|
98
98
|
required_ruby_version: !ruby/object:Gem::Requirement
|