hen 0.4.1 → 0.4.2

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.
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.