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