summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRyan Davis <ryand@zenspider.com>2015-09-02 01:24:35 -0800
committerRyan Davis <ryand@zenspider.com>2015-09-02 01:24:35 -0800
commit7b60bea142c58cfab02a5a5fa2a06c9346692681 (patch)
tree6c0db51a8119ca0ce4a1c541898df9e5b72879f1 /lib
parent0c118366f42dbfaa42da351b4589189bb4718ed8 (diff)
downloadhoe-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.rb2
-rw-r--r--lib/hoe/compiler.rb27
-rw-r--r--lib/hoe/test.rb23
3 files changed, 21 insertions, 31 deletions
diff --git a/lib/hoe.rb b/lib/hoe.rb
index d93f35b..97cbe22 100644
--- a/lib/hoe.rb
+++ b/lib/hoe.rb
@@ -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)