diff options
author | Ryan Davis <ryand@zenspider.com> | 2015-09-02 01:24:35 -0800 |
---|---|---|
committer | Ryan Davis <ryand@zenspider.com> | 2015-09-02 01:24:35 -0800 |
commit | 7b60bea142c58cfab02a5a5fa2a06c9346692681 (patch) | |
tree | 6c0db51a8119ca0ce4a1c541898df9e5b72879f1 /lib | |
parent | 0c118366f42dbfaa42da351b4589189bb4718ed8 (diff) | |
download | hoe-7b60bea142c58cfab02a5a5fa2a06c9346692681.tar.gz |
+ Added so_name variable to bin/sow for using hoe w/ c-extensions.
+ Default config now excludes tmp, .git, and .bundle.
+ Extended :compiler plugin to define #extension for hoe spec decls.
+ Failures to detect/load rake-compiler are handled gracefully.
+ Removed generation of synthesized .gemtest file. Dead.
[git-p4: depot-paths = "//src/hoe/dev/": change = 10367]
Diffstat (limited to 'lib')
-rw-r--r-- | lib/hoe.rb | 2 | ||||
-rw-r--r-- | lib/hoe/compiler.rb | 27 | ||||
-rw-r--r-- | lib/hoe/test.rb | 23 |
3 files changed, 21 insertions, 31 deletions
@@ -116,7 +116,7 @@ class Hoe # this on load. DEFAULT_CONFIG = { - "exclude" => /tmp$|CVS|\.svn|TAGS|extconf.h|\.o$|\.log$/, + "exclude" => /\/tmp\/|CVS|\.svn|\.git|TAGS|extconf.h|\.bundle$|\.o$|\.log$/, } ## diff --git a/lib/hoe/compiler.rb b/lib/hoe/compiler.rb index 736dc8e..244bddc 100644 --- a/lib/hoe/compiler.rb +++ b/lib/hoe/compiler.rb @@ -24,17 +24,22 @@ module Hoe::Compiler def initialize_compiler self.compile_tasks = [:multi, :test, :check_manifest] - self.spec_extras = { :extensions => ["ext/#{self.name}/extconf.rb"] } - - clean_globs << "lib/#{self.name}/*.{so,bundle,dll}" end ## # Activate the rake-compiler dependencies. def activate_compiler_deps - dependency "rake-compiler", "~> 0.7", :development - gem "rake-compiler", "~> 0.7" + dependency "rake-compiler", "~> 0.9", :development + + gem "rake-compiler", "~> 0.9" + rescue LoadError + warn "Couldn't load rake-compiler. Skipping. Run `rake newb` to fix." + end + + def extension name + @extensions ||= [] + @extensions << name end ## @@ -43,12 +48,20 @@ module Hoe::Compiler def define_compiler_tasks require "rake/extensiontask" - Rake::ExtensionTask.new self.name, spec do |ext| - ext.lib_dir = File.join(*["lib", self.name, ENV["FAT_DIR"]].compact) + @extensions.each do |name| + clean_globs << "lib/#{name}/*.{so,bundle,dll}" + + Rake::ExtensionTask.new name, spec do |ext| + ext.lib_dir = File.join(*["lib", name.to_s, ENV["FAT_DIR"]].compact) + end end + spec_extras[:extensions] = @extensions.map! { |name| "ext/#{name}/extconf.rb" } + compile_tasks.each do |t| task t => :compile end + rescue LoadError + warn "Couldn't load rake-compiler. Skipping. Run `rake newb` to fix." end end diff --git a/lib/hoe/test.rb b/lib/hoe/test.rb index bc9aeb2..8d97964 100644 --- a/lib/hoe/test.rb +++ b/lib/hoe/test.rb @@ -131,29 +131,6 @@ module Hoe::Test desc "Run the default task(s)." task :default => default_tasks - unless default_tasks.empty? then - ## - # This is for Erik Hollensbe's rubygems-test project. Hoe is - # test-happy, so by using this plugin you're already testable. For - # more information, see: <https://github.com/erikh/rubygems-test> - # and/or <http://www.gem-testers.org/> - - gemtest = ".gemtest" - - gemtest.encode!(Encoding::UTF_8) if gemtest.respond_to?(:encoding) - - self.spec.files += [gemtest] - - pkg = pkg_path - turd = "#{pkg}/.gemtest" - - file turd => pkg_path do - touch turd - end - - file "#{pkg}.gem" => turd - end - desc "Run ZenTest against the package." task :audit do libs = %w[lib test ext].join(File::PATH_SEPARATOR) |