lib/hoe.rb in hoe-2.9.4 vs lib/hoe.rb in hoe-2.9.5
- old
+ new
@@ -65,11 +65,11 @@
class Hoe
include Rake::DSL if defined?(Rake::DSL)
# duh
- VERSION = '2.9.4'
+ VERSION = '2.9.5'
@@plugins = [:clean, :debug, :deps, :flay, :flog, :newb, :package,
:publish, :rcov, :gemcutter, :signing, :test]
##
@@ -259,18 +259,26 @@
return @loaded, @found
end
##
- # Normalize a project name into the project, file, and klass cases (?!?).
+ # Normalize a project name into the project, file, and klass names that
+ # follow Ruby package naming guidelines.
#
- # no, I have no idea how to describe this. Does the thing with the stuff.
+ # Project names are lowercase with _ separating package parts and -
+ # separating extension parts.
+ #
+ # File names are lowercase with _ separating pacagke parts and / separating
+ # extension parts. net-http-persistent becomes net/http/persistent.
+ #
+ # Klass names are CamelCase with :: separating extension parts.
def self.normalize_names project # :nodoc:
- project = project.tr('-', '_').gsub(/([A-Z])/, '_\1').downcase.sub(/^_/, '')
+ project = project.gsub(/([A-Z])/, '_\1').downcase.sub(/^_/, '')
klass = project.gsub(/(?:^|_)([a-z])/) { $1.upcase }
- file_name = project
+ klass = klass. gsub(/(?:^|-)([a-z])/) { "::#{$1.upcase}" }
+ file_name = project.gsub(/-/, '/')
return project, file_name, klass
end
##
@@ -343,19 +351,31 @@
##
# Add a dependency declaration to your spec. Pass :dev to
# +type+ for developer dependencies.
def dependency name, version, type = :runtime
- ary = case type
- when :runtime then
- extra_deps
- when :dev, :development, :developer then
- extra_dev_deps
- else
- raise "Unknown dependency type: #{type}"
- end
- ary << [name, version]
+ raise "Unknown dependency type: #{type}" unless
+ [:runtime, :dev, :development, :developer].include? type
+
+ # spec has already been defined. A task wants to add a dependency after.
+ if spec then
+ msg = if type == :runtime then
+ :add_dependency
+ else
+ :add_development_dependency
+ end
+
+ spec.send msg, name, version
+ else
+ ary = if type == :runtime then
+ extra_deps
+ else
+ extra_dev_deps
+ end
+
+ ary << [name, version]
+ end
end
##
# Add standard and user defined dependencies to the spec.
@@ -363,15 +383,15 @@
self.extra_deps = normalize_deps extra_deps
self.extra_dev_deps = normalize_deps extra_dev_deps
case name
when 'hoe' then
- extra_deps << ['rake', ">= #{RAKEVERSION}"]
- when 'rubyforge', 'rake', 'gemcutter' then
+ dependency "rake", "~> #{RAKEVERSION}"
+ when 'rake', 'minitest' then
# avoid circular dependencies for hoe's (potentially) hoe'd dependencies
else
- extra_dev_deps << ['hoe', ">= #{VERSION}"]
+ dependency "hoe", "~> #{VERSION}", :development
end
end
##
# Returns the proper dependency list for the thingy.
@@ -420,11 +440,10 @@
end
s.extra_rdoc_files += s.files.grep(/txt$/)
s.extra_rdoc_files.reject! { |f| f =~ %r%^(test|spec|vendor|template|data|tmp)/% }
s.extra_rdoc_files += @extra_rdoc_files
-
end
unless self.version then
version = nil
version_re = /VERSION += +([\"\'])([\d][\w\.]+)\1/
@@ -544,10 +563,10 @@
old_tasks = Rake::Task.tasks.dup
begin
send "define_#{plugin}_tasks"
- rescue NoMethodError => e
+ rescue NoMethodError
warn "warning: couldn't activate the #{plugin} plugin, skipping" if
Rake.application.options.trace or $DEBUG
bad << plugin
next