hoe 2.16.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,22 @@
1
+ === 3.0.0 / 2012-03-20
2
+
3
+ * 3 major enhancements:
4
+
5
+ * Added activate_plugin_deps phase to plugin loading.
6
+ * Removed long deprecated Hoe.new { block }.
7
+ * Removed long deprecated handling of improper dependencies.
8
+
9
+ * 3 minor enhancements:
10
+
11
+ * Added deprecation warnings to Hoe#url and Hoe#url=. Already deprecated for 9 mo.
12
+ * Reworked all the plugins to use activate_XXX_deps, as necessary.
13
+ * Switched internal usage of #url to #urls.
14
+
15
+ * 2 bug fixes:
16
+
17
+ * Fixed failures in the publish_docs task when remote directory times cannot be changed (such as on rubyforge).
18
+ * Fixed isolate setup for the racc plugin
19
+
1
20
  === 2.16.1 / 2012-03-13
2
21
 
3
22
  * 2 bug fixes:
data/README.txt CHANGED
@@ -249,11 +249,16 @@ their projects.
249
249
  ==== Initialization
250
250
 
251
251
  When your hoe-spec is instantiated, it extends itself all known plugin
252
- modules. This adds the method bodies to the hoe-spec and allows for the plugin
253
- to work as part of the spec itself. Once that is over, activated plugins have
254
- their **optional** define `initialize_#{plugin}` methods called. This lets
255
- them set needed instance variables to default values. Finally, the hoe-spec
256
- block is evaluated so that project specific values can override the defaults.
252
+ modules. This adds the method bodies to the hoe-spec and allows for
253
+ the plugin to work as part of the spec itself. Once that is over,
254
+ activated plugins have their **optional** `initialize_#{plugin}`
255
+ methods called followed by their **optional**
256
+ `activate_#{plugin}_deps` methods called. This lets them set needed
257
+ instance variables to default values and declare any gem dependencies
258
+ needed.. Finally, the hoe-spec block is evaluated so that project
259
+ specific values can override the defaults.
260
+
261
+ See "Hoe Plugin Loading Sequence" in hoe.rb for full details.
257
262
 
258
263
  ==== Task Definition
259
264
 
data/lib/hoe.rb CHANGED
@@ -68,13 +68,30 @@ require 'hoe/rake'
68
68
  # # ...
69
69
  # end
70
70
  # end
71
+ #
72
+ # === Hoe Plugin Loading Sequence
73
+ #
74
+ # Hoe.spec
75
+ # Hoe.load_plugins
76
+ # require
77
+ # activate_plugins
78
+ # extend plugin_module
79
+ # initialize_plugins
80
+ # initialize_XXX
81
+ # activate_plugin_deps
82
+ # activate_XXX_deps
83
+ # yield spec
84
+ # post_initialize
85
+ # define_spec # gemspec, not hoespec
86
+ # load_plugin_tasks
87
+ # add_dependencies
71
88
 
72
89
  class Hoe
73
90
 
74
91
  include Rake::DSL if defined?(Rake::DSL)
75
92
 
76
93
  # duh
77
- VERSION = '2.16.1'
94
+ VERSION = '3.0.0'
78
95
 
79
96
  @@plugins = [:clean, :debug, :deps, :flay, :flog, :newb, :package,
80
97
  :publish, :gemcutter, :signing, :test]
@@ -227,6 +244,11 @@ class Hoe
227
244
 
228
245
  attr_accessor :url
229
246
 
247
+ require 'rubygems/deprecate'
248
+ extend Gem::Deprecate
249
+ deprecate :url, :urls, 2012, 6
250
+ deprecate :url=, :urls=, 2012, 6
251
+
230
252
  ##
231
253
  # Optional: The urls of the project. This can be an array or
232
254
  # (preferably) a hash. Auto-populates to the urls read from the
@@ -375,6 +397,11 @@ class Hoe
375
397
  self.extend Hoe.const_get(name)
376
398
  end
377
399
 
400
+ initialize_plugins
401
+ activate_plugin_deps
402
+ end
403
+
404
+ def initialize_plugins
378
405
  Hoe.plugins.each do |plugin|
379
406
  msg = "initialize_#{plugin}"
380
407
  warn msg if $DEBUG
@@ -382,6 +409,14 @@ class Hoe
382
409
  end
383
410
  end
384
411
 
412
+ def activate_plugin_deps
413
+ Hoe.plugins.each do |plugin|
414
+ msg = "activate_#{plugin}_deps"
415
+ warn msg if $DEBUG
416
+ send msg if self.respond_to? msg
417
+ end
418
+ end
419
+
385
420
  ##
386
421
  # Add a dependency declaration to your spec. Pass :dev to
387
422
  # +type+ for developer dependencies.
@@ -458,7 +493,14 @@ class Hoe
458
493
  s.version = version if version
459
494
  s.summary = summary
460
495
  s.email = email
461
- s.homepage = Array(url).first
496
+ s.homepage = case urls
497
+ when Hash then
498
+ urls["home"] || urls.values.first
499
+ when Array then
500
+ urls
501
+ else
502
+ raise "unknown urls format: #{urls.inspect}"
503
+ end
462
504
  s.rubyforge_project = rubyforge_name
463
505
  s.description = description
464
506
  s.files = manifest
@@ -532,9 +574,7 @@ class Hoe
532
574
  end
533
575
 
534
576
  ##
535
- # Create a newly initialized hoe spec. If a block is given, yield on
536
- # it and finish post_initialize steps. This is deprecated behavior
537
- # and should be switched from Hoe.new to Hoe.spec.
577
+ # Create a newly initialized hoe spec.
538
578
 
539
579
  def initialize name, version = nil # :nodoc:
540
580
  self.name = name
@@ -555,7 +595,6 @@ class Hoe
555
595
  self.summary = nil
556
596
  self.summary_sentences = 1
557
597
  self.test_globs = ['test/**/test_*.rb']
558
- self.url = nil
559
598
 
560
599
  if manifest = read_manifest then
561
600
  self.readme_file = manifest.grep(/^README\./).first
@@ -565,13 +604,7 @@ class Hoe
565
604
  self.history_file ||= "History.txt"
566
605
  self.readme_file ||= "README.txt"
567
606
 
568
- if block_given? then
569
- warn "Hoe.new {...} deprecated. Switch to Hoe.spec."
570
- Hoe.load_plugins
571
- self.activate_plugins
572
- yield self
573
- post_initialize
574
- end
607
+ abort "Hoe.new {...} removed. Switch to Hoe.spec." if block_given?
575
608
  end
576
609
 
577
610
  ##
@@ -592,14 +625,6 @@ class Hoe
592
625
  self.urls ||= urls
593
626
  self.description ||= desc
594
627
  self.summary ||= summ
595
- self.url ||= case urls
596
- when Hash then
597
- urls["home"] || urls["repo"] || urls.values.first
598
- when Array then
599
- urls
600
- else
601
- raise "unknown urls format: #{urls.inspect}"
602
- end
603
628
  else
604
629
  missing readme_file
605
630
  end
@@ -681,14 +706,13 @@ class Hoe
681
706
  # Normalize the dependencies.
682
707
 
683
708
  def normalize_deps deps
684
- Array(deps).map { |o|
685
- if String === o then
686
- warn "WAR\NING: HOE DEPRECATION: Add '>= 0' to the '#{o}' dependency."
687
- [o, ">= 0"]
688
- else
689
- o
690
- end
691
- }
709
+ deps = Array(deps)
710
+
711
+ deps.each do |o|
712
+ abort "ERROR: Add '~> x.y' to the '#{o}' dependency." if String === o
713
+ end
714
+
715
+ deps
692
716
  end
693
717
 
694
718
  ##
@@ -27,8 +27,11 @@ module Hoe::Compiler
27
27
  self.spec_extras = { :extensions => ["ext/#{self.name}/extconf.rb"] }
28
28
 
29
29
  clean_globs << "lib/#{self.name}/*.{so,bundle,dll}"
30
+ end
30
31
 
32
+ def activate_compiler_deps
31
33
  dependency "rake-compiler", "~> 0.7", :development
34
+ gem "rake-compiler", "~> 0.7"
32
35
  end
33
36
 
34
37
  ##
@@ -19,11 +19,13 @@ require 'rbconfig'
19
19
 
20
20
  module Hoe::Inline
21
21
  def initialize_inline
22
- dependency "RubyInline", "~> 3.9"
23
-
24
22
  clean_globs << File.expand_path("~/.ruby_inline")
25
23
  end
26
24
 
25
+ def activate_inline_deps
26
+ dependency "RubyInline", "~> 3.9"
27
+ end
28
+
27
29
  ##
28
30
  # Define tasks for plugin.
29
31
 
@@ -93,22 +93,11 @@ module Hoe::Publish
93
93
  self.need_rdoc ||= true
94
94
  self.rdoc_locations ||= []
95
95
  self.remote_rdoc_dir ||= self.name
96
- self.rsync_args ||= '-av --delete'
96
+ self.rsync_args ||= '-av -O --delete'
97
97
  end
98
98
 
99
- def make_rdoc_cmd(*extra_args)
100
- title = "#{name}-#{version} Documentation"
101
- title = "#{rubyforge_name}'s #{title}" if rubyforge_name != name
102
- rdoc = Gem.bin_wrapper "rdoc"
103
-
104
- %W[#{rdoc}
105
- --title #{title}
106
- -o #{local_rdoc_dir}
107
- ] +
108
- spec.rdoc_options +
109
- extra_args +
110
- spec.require_paths +
111
- spec.extra_rdoc_files
99
+ def activate_publish_deps
100
+ dependency "rdoc", "~> 3.10", :developer if need_rdoc
112
101
  end
113
102
 
114
103
  ##
@@ -116,8 +105,6 @@ module Hoe::Publish
116
105
 
117
106
  def define_publish_tasks
118
107
  if need_rdoc then
119
- dependency "rdoc", "~> 3.10", :developer
120
-
121
108
  task :isolate # ensure it exists
122
109
 
123
110
  desc "Generate rdoc"
@@ -198,6 +185,21 @@ module Hoe::Publish
198
185
  task :announce => [:post_blog, :publish_on_announce ]
199
186
  end
200
187
 
188
+ def make_rdoc_cmd(*extra_args)
189
+ title = "#{name}-#{version} Documentation"
190
+ title = "#{rubyforge_name}'s #{title}" if rubyforge_name != name
191
+ rdoc = Gem.bin_wrapper "rdoc"
192
+
193
+ %W[#{rdoc}
194
+ --title #{title}
195
+ -o #{local_rdoc_dir}
196
+ ] +
197
+ spec.rdoc_options +
198
+ extra_args +
199
+ spec.require_paths +
200
+ spec.extra_rdoc_files
201
+ end
202
+
201
203
  def post_blog_zenweb site
202
204
  dir = site["path"]
203
205
 
@@ -42,7 +42,9 @@ module Hoe::Racc
42
42
  # -l = no-line-convert (they don't ever line up anyhow)
43
43
  self.racc_flags ||= "-v -l"
44
44
  self.rex_flags ||= "--independent"
45
+ end
45
46
 
47
+ def define_racc_deps
46
48
  dependency 'racc', '~> 1.4.6', :development
47
49
  end
48
50
 
@@ -75,11 +77,13 @@ module Hoe::Racc
75
77
  end
76
78
  end
77
79
 
80
+ task :isolate # stub task
81
+
78
82
  desc "build the parser" unless parser_files.empty?
79
- task :parser
83
+ task :parser => :isolate
80
84
 
81
85
  desc "build the lexer" unless lexer_files.empty?
82
- task :lexer
86
+ task :lexer => :isolate
83
87
 
84
88
  task :parser => parser_files
85
89
  task :lexer => lexer_files
@@ -6,7 +6,7 @@
6
6
  # rcov:: Analyze code coverage with tests
7
7
 
8
8
  module Hoe::RCov
9
- def initialize_rcov
9
+ def activate_rcov_deps
10
10
  dependency "rcov", "~> 0.9", :development
11
11
  end
12
12
 
@@ -279,7 +279,6 @@ class TestHoe < MiniTest::Unit::TestCase
279
279
  "other" => "http://github.com/jbarnette/hoe-plugin-examples",
280
280
  }
281
281
 
282
- assert_equal urls["home"], hoe.url
283
282
  assert_equal urls, hoe.urls
284
283
 
285
284
  text_files = files.grep(/txt$/).reject { |f| f =~ /template/ }
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hoe
3
3
  version: !ruby/object:Gem::Version
4
- hash: 77
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
- - 2
8
- - 16
9
- - 1
10
- version: 2.16.1
7
+ - 3
8
+ - 0
9
+ - 0
10
+ version: 3.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ryan Davis
@@ -36,7 +36,7 @@ cert_chain:
36
36
  FBHgymkyj/AOSqKRIpXPhjC6
37
37
  -----END CERTIFICATE-----
38
38
 
39
- date: 2012-03-13 00:00:00 Z
39
+ date: 2012-03-20 00:00:00 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
@@ -176,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
176
176
  requirements: []
177
177
 
178
178
  rubyforge_project: seattlerb
179
- rubygems_version: 1.8.12
179
+ rubygems_version: 1.8.17
180
180
  signing_key:
181
181
  specification_version: 3
182
182
  summary: Hoe is a rake/rubygems helper for project Rakefiles
metadata.gz.sig CHANGED
Binary file