hoe 2.13.1 → 2.14.0

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.tar.gz.sig CHANGED
@@ -1 +1,4 @@
1
- !>����q�0Q<Ʈ�>I�D��B ����K21A'�p�)
1
+
2
+ :��~��n=����߽�;�֊��L�)Y���X�
3
+ 4\�@��x��<I=�'>�ڞ(�^�[�h%�ʧ޵slL�Q�����P��=�^�
4
+ ���rWR�E�2��+�y&D�՜U���8d��X�մ���|�*�;PS�G�I�:�k���!�{�k��S�fu;e���k�8�ES'��R7���k��$0�O��;�G)\�Z�u�lkښ�*��wlʲV%ϡ����E�C���J����`
data/History.txt CHANGED
@@ -1,3 +1,23 @@
1
+ === 2.14.0 / 2012-02-20
2
+
3
+ * 9 minor enhancements:
4
+
5
+ * .rdoc files are now automatically added to the extra_rdoc_files list.
6
+ * Added Hoe#read_manifest
7
+ * Added check_manifest to the prerelease task to prevent broken releases.
8
+ * Added extra duplicate dependency checking.
9
+ * Hoe#with_config merges the local and home configuration atop Hoe::DEFAULT_CONFIG to allow plugins to supply new defaults.
10
+ * The readme_file and history_file are now automatically guessed from the manifest. This allows "README.rdoc" to be used automatically.
11
+ * install_gem optionally excludes rdoc/ri generation.
12
+ * rake check_extra_deps excludes rdoc/ri generation. rake install_gem does not.
13
+ * rake multi now just reinvokes rake using multiruby to allow hoe plugins to be invoked.
14
+
15
+ * 3 bug fixes:
16
+
17
+ * Added workaround for check_extra_deps for multi-version dependencies.
18
+ * The publish plugin no longer raises an exception for missing or ancient versions of rdoc.
19
+ * rdoc plugin calls isolate if using isolate
20
+
1
21
  === 2.13.1 / 2012-02-06
2
22
 
3
23
  * 1 minor enhancement:
data/Rakefile CHANGED
@@ -4,6 +4,7 @@ $:.unshift 'lib'
4
4
  require './lib/hoe.rb'
5
5
 
6
6
  Hoe.plugin :seattlerb
7
+ Hoe.plugin :isolate
7
8
 
8
9
  Hoe.spec "hoe" do
9
10
  developer "Ryan Davis", "ryand-ruby@zenspider.com"
@@ -14,6 +15,8 @@ Hoe.spec "hoe" do
14
15
 
15
16
  pluggable!
16
17
  require_rubygems_version '>= 1.4'
18
+
19
+ dependency "rake", "~> 0.8" # FIX: to force it to exist pre-isolate
17
20
  end
18
21
 
19
22
  task :plugins do
data/lib/hoe.rb CHANGED
@@ -68,7 +68,7 @@ class Hoe
68
68
  include Rake::DSL if defined?(Rake::DSL)
69
69
 
70
70
  # duh
71
- VERSION = '2.13.1'
71
+ VERSION = '2.14.0'
72
72
 
73
73
  @@plugins = [:clean, :debug, :deps, :flay, :flog, :newb, :package,
74
74
  :publish, :rcov, :gemcutter, :signing, :test]
@@ -396,14 +396,19 @@ class Hoe
396
396
  dependency "hoe", "~> #{version}", :development
397
397
  end
398
398
 
399
- runtime = extra_deps.map(&:first)
400
- extra_dev_deps.reject! { |(name, _)| runtime.include? name }
399
+ seen = {}
401
400
 
402
401
  extra_deps.each do |dep|
402
+ next if seen[dep.first]
403
+ seen[dep.first] = true
404
+
403
405
  spec.add_dependency(*dep)
404
406
  end
405
407
 
406
408
  extra_dev_deps.each do |dep|
409
+ next if seen[dep.first]
410
+ seen[dep.first] = true
411
+
407
412
  spec.add_development_dependency(*dep)
408
413
  end
409
414
  end
@@ -422,7 +427,7 @@ class Hoe
422
427
  self.spec = Gem::Specification.new do |s|
423
428
  dirs = Dir['lib']
424
429
 
425
- manifest = File.read_utf("Manifest.txt").split(/\r?\n\r?/) rescue nil
430
+ manifest = read_manifest
426
431
 
427
432
  abort [
428
433
  "Manifest is missing or couldn't be read.",
@@ -455,7 +460,7 @@ class Hoe
455
460
  s.author = author
456
461
  end
457
462
 
458
- s.extra_rdoc_files += s.files.grep(/txt$/)
463
+ s.extra_rdoc_files += s.files.grep(/(txt|rdoc)$/)
459
464
  s.extra_rdoc_files.reject! { |f| f =~ %r%^(test|spec|vendor|template|data|tmp)/% }
460
465
  s.extra_rdoc_files += @extra_rdoc_files
461
466
  end
@@ -516,9 +521,7 @@ class Hoe
516
521
  self.extra_deps = []
517
522
  self.extra_dev_deps = []
518
523
  self.extra_rdoc_files = []
519
- self.history_file = "History.txt"
520
524
  self.post_install_message = nil
521
- self.readme_file = "README.txt"
522
525
  self.rubyforge_name = name.downcase
523
526
  self.spec = nil
524
527
  self.spec_extras = {}
@@ -527,6 +530,14 @@ class Hoe
527
530
  self.test_globs = ['test/**/test_*.rb']
528
531
  self.url = nil
529
532
 
533
+ if manifest = read_manifest then
534
+ self.readme_file = manifest.grep(/^README\./).first
535
+ self.history_file = manifest.grep(/^History\./).first
536
+ end
537
+
538
+ self.history_file ||= "History.txt"
539
+ self.readme_file ||= "README.txt"
540
+
530
541
  if block_given? then
531
542
  warn "Hoe.new {...} deprecated. Switch to Hoe.spec."
532
543
  Hoe.load_plugins
@@ -699,6 +710,15 @@ class Hoe
699
710
  add_dependencies
700
711
  end
701
712
 
713
+ ##
714
+ # Reads Manifest.txt and returns an Array of lines in the manifest.
715
+ #
716
+ # Returns nil if no manifest was found.
717
+
718
+ def read_manifest
719
+ File.read_utf("Manifest.txt").split(/\r?\n\r?/) rescue nil
720
+ end
721
+
702
722
  ##
703
723
  # Declare that your gem requires a specific rubygems version. Last one wins.
704
724
 
@@ -741,14 +761,21 @@ class Hoe
741
761
  # any) and yields the configuration and its path
742
762
 
743
763
  def with_config
764
+ config = Hoe::DEFAULT_CONFIG
765
+
744
766
  rc = File.expand_path("~/.hoerc")
745
767
  exists = File.exist? rc
746
- config = exists ? YAML.load_file(rc) : {}
768
+ homeconfig = exists ? YAML.load_file(rc) : {}
769
+
770
+ config = config.merge homeconfig
771
+
747
772
  localrc = File.join Dir.pwd, '.hoerc'
748
773
  exists = File.exist? localrc
749
774
  localconfig = exists ? YAML.load_file(localrc) : {}
750
775
 
751
- yield(config.merge(localconfig), rc)
776
+ config = config.merge localconfig
777
+
778
+ yield config, rc
752
779
  end
753
780
  end
754
781
 
data/lib/hoe/deps.rb CHANGED
@@ -113,7 +113,9 @@ module Hoe::Deps
113
113
  begin
114
114
  gem(*dep)
115
115
  rescue Gem::LoadError
116
- install_gem(*dep)
116
+ name, req, = dep
117
+
118
+ install_gem name, req, false
117
119
  end
118
120
  end
119
121
  end
data/lib/hoe/package.rb CHANGED
@@ -12,6 +12,8 @@ end
12
12
  # === Tasks Provided:
13
13
  #
14
14
  # install_gem:: Install the package as a gem.
15
+ # prerelease:: Hook for pre-release actions like sanity checks.
16
+ # postrelease:: Hook for post-release actions like release announcements.
15
17
  # release:: Package and upload the release.
16
18
 
17
19
  module Hoe::Package
@@ -53,7 +55,7 @@ module Hoe::Package
53
55
  task :release => [:prerelease, :release_to, :postrelease]
54
56
 
55
57
  # no doco, invisible hook
56
- task :prerelease do
58
+ task :prerelease => [:check_manifest] do
57
59
  abort "Fix your version before you release" if spec.version =~ /borked/
58
60
  end
59
61
 
@@ -85,14 +87,18 @@ module Hoe::Package
85
87
  ##
86
88
  # Install the named gem.
87
89
 
88
- def install_gem name, version = nil
90
+ def install_gem name, version = nil, rdoc=true
89
91
  should_not_sudo = Hoe::WINDOZE || ENV["NOSUDO"] || File.writable?(Gem.dir)
90
92
 
91
93
  gem_cmd = Gem.default_exec_format % 'gem'
92
94
  sudo = 'sudo ' unless should_not_sudo
93
95
  local = '--local' unless version
94
96
  version = "--version '#{version}'" if version
95
- sh "#{sudo}#{gem_cmd} install #{local} #{name} #{version}"
97
+
98
+ cmd = "#{sudo}#{gem_cmd} install #{local} #{name} #{version}"
99
+ cmd += " --no-rdoc --no-ri" unless rdoc
100
+
101
+ sh cmd
96
102
  end
97
103
 
98
104
  def prerelease_version # :nodoc:
data/lib/hoe/publish.rb CHANGED
@@ -89,11 +89,15 @@ module Hoe::Publish
89
89
  if need_rdoc then
90
90
  dependency "rdoc", "~> 3.10", :developer
91
91
 
92
+ Rake.application[:isolate].invoke if plugin? :isolate
93
+
92
94
  unless defined? RDoc::Task then
93
95
  begin
94
96
  gem 'rdoc'
95
97
  rescue Gem::LoadError
96
- p $!
98
+ warn $!
99
+ warn ""
100
+ warn "please run: rake check_extra_deps"
97
101
  end unless Object.const_defined? :RDoc
98
102
 
99
103
  begin
@@ -103,6 +107,8 @@ module Hoe::Publish
103
107
  end
104
108
  end
105
109
 
110
+ return unless Object.const_defined? :RDoc
111
+
106
112
  RDoc::Task.new(:docs) do |rd|
107
113
  rd.main = readme_file
108
114
  rd.options << '-d' if (`which dot` =~ /\/dot/) unless
data/lib/hoe/test.rb CHANGED
@@ -77,7 +77,7 @@ module Hoe::Test
77
77
 
78
78
  desc 'Run the test suite using multiruby.'
79
79
  task :multi do
80
- ruby make_test_cmd(:multi)
80
+ system "multiruby -S rake"
81
81
  end
82
82
 
83
83
  desc 'Show which test files fail when run alone.'
@@ -143,7 +143,7 @@ module Hoe::Test
143
143
  ##
144
144
  # Generate the test command-line.
145
145
 
146
- def make_test_cmd multi = false # :nodoc:
146
+ def make_test_cmd
147
147
  unless SUPPORTED_TEST_FRAMEWORKS.has_key?(testlib)
148
148
  raise "unsupported test framework #{testlib}"
149
149
  end
@@ -158,15 +158,7 @@ module Hoe::Test
158
158
 
159
159
  tests.insert 1, test_prelude if test_prelude
160
160
 
161
- cmd = "#{Hoe::RUBY_FLAGS} -e '#{tests.join("; ")}' -- #{FILTER}"
162
-
163
- if multi then
164
- multiruby_skip << "mri_trunk" if multiruby_skip.include? "1.9"
165
- ENV['EXCLUDED_VERSIONS'] = multiruby_skip.join ":"
166
- cmd = "-S multiruby #{cmd}"
167
- end
168
-
169
- cmd
161
+ "#{Hoe::RUBY_FLAGS} -e '#{tests.join("; ")}' -- #{FILTER}"
170
162
  end
171
163
 
172
164
  ##
data/test/test_hoe.rb CHANGED
@@ -141,6 +141,54 @@ class TestHoe < MiniTest::Unit::TestCase
141
141
  ENV['HOME'] = home
142
142
  end
143
143
 
144
+ def test_initialize_intuit
145
+ Dir.mktmpdir do |path|
146
+ Dir.chdir path do
147
+ open 'Manifest.txt', 'w' do |io| # sorted
148
+ io.puts 'FAQ.rdoc'
149
+ io.puts 'History.rdoc'
150
+ io.puts 'README.rdoc'
151
+ end
152
+
153
+ open 'README.rdoc', 'w' do |io| io.puts '= blah' end
154
+ open 'History.rdoc', 'w' do |io| io.puts '=== 1.0' end
155
+
156
+ hoe = Hoe.spec 'blah' do
157
+ self.version = '1.0'
158
+ developer 'nobody', 'nobody@example'
159
+ end
160
+
161
+ assert_equal 'History.rdoc', hoe.history_file
162
+ assert_equal 'README.rdoc', hoe.readme_file
163
+ assert_equal %w[FAQ.rdoc History.rdoc README.rdoc],
164
+ hoe.spec.extra_rdoc_files
165
+ end
166
+ end
167
+ end
168
+
169
+ def test_initialize_intuit_ambiguous
170
+ Dir.mktmpdir do |path|
171
+ Dir.chdir path do
172
+ open 'Manifest.txt', 'w' do |io|
173
+ io.puts 'History.rdoc' # sorted
174
+ io.puts 'README.ja.rdoc'
175
+ io.puts 'README.rdoc'
176
+ end
177
+
178
+ open 'README.rdoc', 'w' do |io| io.puts '= blah' end
179
+ open 'README.ja.rdoc', 'w' do |io| io.puts '= blah' end
180
+ open 'History.rdoc', 'w' do |io| io.puts '=== 1.0' end
181
+
182
+ hoe = Hoe.spec 'blah' do
183
+ self.version = '1.0'
184
+ developer 'nobody', 'nobody@example'
185
+ end
186
+
187
+ assert_equal 'README.ja.rdoc', hoe.readme_file
188
+ end
189
+ end
190
+ end
191
+
144
192
  def test_file_read_utf
145
193
  Tempfile.open 'BOM' do |io|
146
194
  io.write "\xEF\xBB\xBFBOM"
@@ -257,6 +305,16 @@ class TestHoe < MiniTest::Unit::TestCase
257
305
  Hoe.plugins.replace before
258
306
  end
259
307
 
308
+ def test_read_manifest
309
+ hoe = Hoe.spec 'blah' do
310
+ developer 'author', 'email'
311
+ end
312
+
313
+ expected = File.read_utf('Manifest.txt').split
314
+
315
+ assert_equal expected, hoe.read_manifest
316
+ end
317
+
260
318
  def test_rename
261
319
  # project, file_name, klass = Hoe.normalize_names 'project_name'
262
320
 
@@ -284,4 +342,49 @@ class TestHoe < MiniTest::Unit::TestCase
284
342
  ensure
285
343
  ENV.delete "NOSUDO"
286
344
  end
345
+
346
+ def test_with_config_default
347
+ home = ENV['HOME']
348
+ Hoe.files = nil
349
+
350
+ Dir.mktmpdir do |path|
351
+ ENV['HOME'] = path
352
+
353
+ hoeconfig = hoe.with_config {|config, _| config }
354
+
355
+ assert_equal Hoe::DEFAULT_CONFIG, hoeconfig
356
+ end
357
+ ensure
358
+ ENV['HOME'] = home
359
+ end
360
+
361
+ def test_with_config_overrides
362
+ overrides = {
363
+ 'exclude' => Regexp.union( Hoe::DEFAULT_CONFIG["exclude"], /\.hg/ ),
364
+ 'plugins' => ['tweedledee', 'tweedledum']
365
+ }
366
+ overrides_rcfile = File.join(Dir.pwd, '.hoerc')
367
+
368
+ home = ENV['HOME']
369
+ Hoe.files = nil
370
+
371
+ Dir.mktmpdir do |path|
372
+ ENV['HOME'] = path
373
+
374
+ open File.join(path, '.hoerc'), 'w' do |io|
375
+ io.write YAML.dump( Hoe::DEFAULT_CONFIG )
376
+ end
377
+ open overrides_rcfile, File::CREAT|File::EXCL|File::WRONLY do |io|
378
+ io.write YAML.dump( overrides )
379
+ end
380
+
381
+ hoeconfig = hoe.with_config {|config, _| config }
382
+
383
+ assert_equal Hoe::DEFAULT_CONFIG.merge(overrides), hoeconfig
384
+ end
385
+ ensure
386
+ File.delete overrides_rcfile if File.exist?( overrides_rcfile )
387
+ ENV['HOME'] = home
388
+ end
389
+
287
390
  end
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: 57
4
+ hash: 55
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
- - 13
9
- - 1
10
- version: 2.13.1
8
+ - 14
9
+ - 0
10
+ version: 2.14.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-02-06 00:00:00 Z
39
+ date: 2012-02-21 00:00:00 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
metadata.gz.sig CHANGED
Binary file