hoe 1.5.1 → 1.5.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. data/History.txt +13 -0
  2. data/README.txt +1 -1
  3. data/Rakefile +4 -1
  4. data/bin/sow +0 -0
  5. data/lib/hoe.rb +45 -18
  6. metadata +4 -4
@@ -1,3 +1,16 @@
1
+ === 1.5.2 / 2008-05-20
2
+
3
+ * 4 Minor Enhancements:
4
+
5
+ * Added multiruby_skip attribute for 'rake multi' version invalidation.
6
+ * Improved error messages when files are missing.
7
+ * Added rubygems post_install_message accessor. Thanks to Dr. Nic.
8
+ * Cleaned up alternative_name... I didn't get it.
9
+
10
+ * 1 Bug Fix:
11
+
12
+ * Removed require of rake/contrib/sshpublisher to fix 1.9.
13
+
1
14
  === 1.5.1 / 2008-03-04
2
15
 
3
16
  * 2 Minor Enhancements:
data/README.txt CHANGED
@@ -69,7 +69,7 @@ or
69
69
 
70
70
  (The MIT License)
71
71
 
72
- Copyright (c) 2006 Ryan Davis, Zen Spider Software
72
+ Copyright (c) Ryan Davis, Zen Spider Software
73
73
 
74
74
  Permission is hereby granted, free of charge, to any person obtaining
75
75
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -5,11 +5,14 @@ require './lib/hoe.rb'
5
5
  Hoe.new("hoe", Hoe::VERSION) do |hoe|
6
6
  hoe.rubyforge_name = "seattlerb"
7
7
  hoe.developer("Ryan Davis", "ryand-ruby@zenspider.com")
8
+
9
+ hoe.multiruby_skip << "rubinius"
8
10
  end
9
11
 
12
+ desc "Generate a list of tasks for doco. RDOC=1 for commented output"
10
13
  task :tasks do
11
14
  tasks = `rake -T`.scan(/rake (\w+)\s+# (.*)/)
12
- tasks.reject! { |t,d| t =~ /^(clobber|re(package|docs))/ }
15
+ tasks.reject! { |t,d| t =~ /^(clobber|tasks|re(package|docs))/ }
13
16
  max = tasks.map { |x,y| x.size }.max
14
17
 
15
18
  tasks.each do |t,d|
data/bin/sow CHANGED
File without changes
data/lib/hoe.rb CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  require 'rubygems'
4
4
  require 'rake'
5
- require 'rake/contrib/sshpublisher'
6
5
  require 'rake/gempackagetask'
7
6
  require 'rake/rdoctask'
8
7
  require 'rake/testtask'
@@ -64,8 +63,8 @@ require 'yaml'
64
63
  # exclude:: A regular expression of files to exclude from
65
64
  # +check_manifest+.
66
65
  # publish_on_announce:: Run +publish_docs+ when you run +release+.
67
- # signing_key_file:: Signs your gems with this private key.
68
- # signing_cert_file:: Signs your gem with this certificate.
66
+ # signing_key_file:: Signs your gems with this private key.
67
+ # signing_cert_file:: Signs your gem with this certificate.
69
68
  # blogs:: An array of hashes of blog settings.
70
69
  #
71
70
  # Run +config_hoe+ and see ~/.hoerc for examples.
@@ -116,7 +115,7 @@ require 'yaml'
116
115
  #
117
116
 
118
117
  class Hoe
119
- VERSION = '1.5.1'
118
+ VERSION = '1.5.2'
120
119
 
121
120
  ruby_prefix = Config::CONFIG['prefix']
122
121
  sitelibdir = Config::CONFIG['sitelibdir']
@@ -214,6 +213,11 @@ class Hoe
214
213
 
215
214
  attr_accessor :lib_files # :nodoc:
216
215
 
216
+ ##
217
+ # Optional: Array of incompatible versions for multiruby filtering. Used as a regex.
218
+
219
+ attr_accessor :multiruby_skip
220
+
217
221
  ##
218
222
  # *MANDATORY*: The name of the release.
219
223
 
@@ -229,6 +233,11 @@ class Hoe
229
233
 
230
234
  attr_accessor :need_zip
231
235
 
236
+ ##
237
+ # Optional: A post-install message to be displayed when gem is installed.
238
+
239
+ attr_accessor :post_install_message
240
+
232
241
  ##
233
242
  # Optional: A regexp to match documentation files against the manifest.
234
243
 
@@ -300,6 +309,7 @@ class Hoe
300
309
  self.description_sections = %w(description)
301
310
  self.email = []
302
311
  self.extra_deps = []
312
+ self.multiruby_skip = []
303
313
  self.need_tar = true
304
314
  self.need_zip = false
305
315
  self.rdoc_pattern = /^(lib|bin|ext)|txt$/
@@ -309,12 +319,18 @@ class Hoe
309
319
  self.spec_extras = {}
310
320
  self.summary_sentences = 1
311
321
  self.test_globs = ['test/**/test_*.rb']
322
+ self.post_install_message = nil
312
323
 
313
324
  yield self if block_given?
314
325
 
315
326
  # Intuit values:
316
327
 
317
- readme = File.read("README.txt").split(/^(=+ .*)$/)[1..-1]
328
+ def missing name
329
+ warn "** #{name} is missing or in the wrong format for auto-intuiting."
330
+ warn " run `sow blah` and look at its text files"
331
+ end
332
+
333
+ readme = File.read("README.txt").split(/^(=+ .*)$/)[1..-1] rescue ''
318
334
  unless readme.empty? then
319
335
  sections = readme.map { |s|
320
336
  s =~ /^=/ ? s.strip.downcase.chomp(':').split.last : s.strip
@@ -324,14 +340,20 @@ class Hoe
324
340
  summ = desc.split(/\.\s+/).first(summary_sentences).join(". ")
325
341
 
326
342
  self.description ||= desc
327
- self.changes ||= File.read("History.txt").split(/^(===.*)/)[1..2].join.strip
328
343
  self.summary ||= summ
329
344
  self.url ||= readme[1].gsub(/^\* /, '').split(/\n/).grep(/\S+/)
330
345
  else
331
- warn "** README.txt is in the wrong format for auto-intuiting."
332
- warn " run sow blah and look at it's text files"
346
+ missing 'README.txt'
333
347
  end
334
348
 
349
+ self.changes ||= begin
350
+ h = File.read("History.txt")
351
+ h.split(/^(===.*)/)[1..2].join.strip
352
+ rescue
353
+ missing 'History.txt'
354
+ ''
355
+ end
356
+
335
357
  %w(email author).each do |field|
336
358
  value = self.send(field)
337
359
  if value.nil? or value.empty? then
@@ -339,7 +361,7 @@ class Hoe
339
361
  warn "Hoe #{field} value not set - Fix by 2008-04-01!"
340
362
  self.send "#{field}=", "doofus"
341
363
  else
342
- abort "Hoe #{field} value not set"
364
+ abort "Hoe #{field} value not set. aborting"
343
365
  end
344
366
  end
345
367
  end
@@ -445,6 +467,8 @@ class Hoe
445
467
  s.extra_rdoc_files = s.files.grep(/txt$/)
446
468
  s.has_rdoc = true
447
469
 
470
+ s.post_install_message = post_install_message
471
+
448
472
  if test ?f, "test/test_all.rb" then
449
473
  s.test_file = "test/test_all.rb"
450
474
  else
@@ -461,13 +485,11 @@ class Hoe
461
485
  if ENV['INLINE'] then
462
486
  s.platform = ENV['FORCE_PLATFORM'] || Gem::Platform::CURRENT
463
487
  # name of the extension is CamelCase
464
- if name =~ /[A-Z]/
465
- # ClassName => class_name
466
- alternate_name = name.reverse.scan(%r/[A-Z]+|[^A-Z]*[A-Z]+?/).reverse.map { |word| word.reverse.downcase }.join('_')
467
- elsif name =~ /_/
468
- # class_name = ClassName
469
- alternate_name = name.strip.split(/\s*_+\s*/).map! { |w| w.downcase.sub(/^./) { |c| c.upcase } }.join
470
- end
488
+ alternate_name = if name =~ /[A-Z]/ then
489
+ name.gsub(/([A-Z])/, '_\1').downcase.sub(/^_/, '')
490
+ elsif name =~ /_/ then
491
+ name.capitalize.gsub(/_([a-z])/) { $1.upcase }
492
+ end
471
493
 
472
494
  # Try collecting Inline extensions for +name+
473
495
  if defined?(Inline) then
@@ -599,7 +621,7 @@ class Hoe
599
621
  task :clean => [ :clobber_docs, :clobber_package ] do
600
622
  clean_globs.each do |pattern|
601
623
  files = Dir[pattern]
602
- rm_rf files unless files.empty?
624
+ rm_rf files, :verbose => true unless files.empty?
603
625
  end
604
626
  end
605
627
 
@@ -693,7 +715,8 @@ class Hoe
693
715
  require 'find'
694
716
  files = []
695
717
  with_config do |config, _|
696
- exclusions = config["exclude"] || /tmp$|CVS|\.svn/
718
+ exclusions = config["exclude"]
719
+ abort "exclude entry missing from .hoerc. Aborting." if exclusions.nil?
697
720
  Find.find '.' do |path|
698
721
  next unless File.file? path
699
722
  next if path =~ exclusions
@@ -778,7 +801,11 @@ class Hoe
778
801
  tests.map! {|f| %Q(require "#{f}")}
779
802
  "#{RUBY_FLAGS} -e '#{tests.join("; ")}' #{FILTER}"
780
803
  end
804
+
805
+ excludes = multiruby_skip.join(":")
806
+ ENV['EXCLUDED_VERSIONS'] = excludes
781
807
  cmd = "multiruby #{cmd}" if multi
808
+
782
809
  send msg, cmd
783
810
  end
784
811
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hoe
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-03-04 00:00:00 -08:00
12
+ date: 2008-05-20 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -19,7 +19,7 @@ dependencies:
19
19
  requirements:
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.4.4
22
+ version: 0.4.5
23
23
  version:
24
24
  - !ruby/object:Gem::Dependency
25
25
  name: rake
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  requirements: []
73
73
 
74
74
  rubyforge_project: seattlerb
75
- rubygems_version: 1.0.1
75
+ rubygems_version: 1.1.1
76
76
  signing_key:
77
77
  specification_version: 2
78
78
  summary: Hoe is a simple rake/rubygems helper for project Rakefiles