hen 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README +1 -1
  2. data/lib/hen/version.rb +1 -1
  3. data/lib/hens/gem.rake +66 -5
  4. metadata +7 -7
data/README CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  == VERSION
4
4
 
5
- This documentation refers to hen version 0.4.1
5
+ This documentation refers to hen version 0.4.2
6
6
 
7
7
 
8
8
  == DESCRIPTION
@@ -4,7 +4,7 @@ class Hen
4
4
 
5
5
  MAJOR = 0
6
6
  MINOR = 4
7
- TINY = 1
7
+ TINY = 2
8
8
 
9
9
  class << self
10
10
 
@@ -39,6 +39,8 @@ Hen :gem => :rdoc do
39
39
  gem_options[:rdoc_options] ||= RDOC_OPTIONS[:options]
40
40
  end
41
41
 
42
+ meta_gems = Array(gem_options.delete(:meta))
43
+
42
44
  gem_spec = Gem::Specification.new { |spec|
43
45
 
44
46
  ### name
@@ -157,13 +159,63 @@ Hen :gem => :rdoc do
157
159
 
158
160
  desc "Update (or create) the project's gemspec file"
159
161
  task 'gem:spec:update' do
160
- file = "#{gem_spec.name}.gemspec"
161
- action = File.exists?(file) ? 'Updated' : 'Created'
162
+ write_gemspec(gem_spec)
163
+ end
162
164
 
163
- File.open(file, 'w') { |f| f.puts gem_spec.to_ruby }
165
+ meta_gems.each { |meta_gem_options|
164
166
 
165
- puts "#{action} #{file}"
166
- end
167
+ noauto = meta_gem_options.delete(:noauto)
168
+
169
+ meta_gem_spec = Gem::Specification.new { |spec|
170
+
171
+ ### inherit from original spec
172
+
173
+ %w[
174
+ name version authors email summary description
175
+ rubyforge_project homepage
176
+ ].each { |key|
177
+ meta_gem_options[key = key.to_sym] ||= gem_options[key]
178
+ }
179
+
180
+ ### name + summary suffixes
181
+
182
+ if suffix = meta_gem_options.delete(:suffix)
183
+ meta_gem_options[:name] += "-#{suffix}"
184
+ end
185
+
186
+ summary_suffix = meta_gem_options.delete(:summary_suffix) || 'virtual package'
187
+ meta_gem_options[:summary] += " (#{summary_suffix})" unless summary_suffix.empty?
188
+
189
+ ### dependencies
190
+
191
+ [
192
+ [gem_options[:name], gem_options[:version]],
193
+ *Array(meta_gem_options.delete(:extras))
194
+ ].each { |dependency|
195
+ spec.add_dependency(*dependency)
196
+ }
197
+
198
+ ### => set options!
199
+
200
+ set_options(spec, meta_gem_options, 'Gem')
201
+
202
+ }
203
+
204
+ meta_prefix = "gem:meta:#{meta_gem_spec.name}"
205
+
206
+ desc "Display the #{meta_gem_spec.name} gem specification"
207
+ task "#{meta_prefix}:spec" do
208
+ puts meta_gem_spec.to_ruby
209
+ end
210
+
211
+ desc "Update (or create) the project's #{meta_gem_spec.name} gemspec file"
212
+ task "#{meta_prefix}:spec:update" do
213
+ write_gemspec(meta_gem_spec)
214
+ end
215
+
216
+ task 'gem:spec:update' => "#{meta_prefix}:spec:update" unless noauto
217
+
218
+ }
167
219
 
168
220
  pkg_task = gem_klass.new(gem_spec) { |pkg|
169
221
  pkg.need_tar_gz = true
@@ -243,4 +295,13 @@ Hen :gem => :rdoc do
243
295
 
244
296
  %w[doc:publish release:tag].each { |t| task :release => t if have_task?(t) }
245
297
 
298
+ def write_gemspec(gem_spec)
299
+ file = "#{gem_spec.name}.gemspec"
300
+ action = File.exists?(file) ? 'Updated' : 'Created'
301
+
302
+ File.open(file, 'w') { |f| f.puts gem_spec.to_ruby }
303
+
304
+ puts "#{action} #{file}"
305
+ end
306
+
246
307
  end
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: 13
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 1
10
- version: 0.4.1
9
+ - 2
10
+ version: 0.4.2
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-02 00:00:00 Z
18
+ date: 2012-01-09 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: ruby-nuggets
@@ -85,13 +85,13 @@ licenses: []
85
85
 
86
86
  post_install_message:
87
87
  rdoc_options:
88
- - --all
89
88
  - --main
90
89
  - README
90
+ - --all
91
91
  - --charset
92
92
  - UTF-8
93
93
  - --title
94
- - hen Application documentation (v0.4.1)
94
+ - hen Application documentation (v0.4.2)
95
95
  - --line-numbers
96
96
  require_paths:
97
97
  - lib
@@ -116,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
116
  requirements: []
117
117
 
118
118
  rubyforge_project: prometheus
119
- rubygems_version: 1.8.13
119
+ rubygems_version: 1.8.15
120
120
  signing_key:
121
121
  specification_version: 3
122
122
  summary: Hoe or Echoe? No, thanks! Just a Rake helper that fits my own personal style.