lib/hoe/bundler.rb in hoe-bundler-1.4.0 vs lib/hoe/bundler.rb in hoe-bundler-1.5.0
- old
+ new
@@ -1,33 +1,45 @@
class Hoe #:nodoc:
#
# Rake task to generate a bundler Gemfile based on your declared hoe dependencies.
#
# * <tt>bundler:gemfile</tt>
+ # * <tt>bundler:gemfile[https://rubygems.org/,false]</tt>
#
module Bundler
- VERSION = "1.4.0" #:nodoc:
+ VERSION = "1.5.0" #:nodoc:
+ DEFAULT_SOURCE = 'https://rubygems.org/'
+ DEFAULT_USE_GEMSPEC = false
+
def define_bundler_tasks
desc "generate a bundler Gemfile from your Hoe.spec dependencies"
- task "bundler:gemfile" do
+ task "bundler:gemfile", :source, :use_gemspec do |t,args|
+ args.with_defaults(:source => DEFAULT_SOURCE, :use_gemspec => DEFAULT_USE_GEMSPEC)
File.open("Gemfile","w") do |gemfile|
- gemfile.print hoe_bundler_contents
+ gemfile.print hoe_bundler_contents(args)
end
end
end
- def hoe_bundler_contents
+ def hoe_bundler_contents(args = {})
+ args[:source] = DEFAULT_SOURCE unless args.has_key?(:source)
+ args[:use_gemspec] = DEFAULT_USE_GEMSPEC unless args.has_key?(:use_gemspec)
+
gemfile = StringIO.new
gemfile.puts "# -*- ruby -*-"
gemfile.puts
gemfile.puts "# DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake bundler:gemfile`."
gemfile.puts
- gemfile.puts "source \"https://rubygems.org/\""
+ gemfile.puts "source "<< ((args[:source] =~ /^https?:\/\//) ? "\"#{args[:source]}\"" : ":#{args[:source]}")
+ gemfile.puts "gemspec" if args[:use_gemspec]
gemfile.puts
- hoe_bundler_add_dependencies(self.extra_deps, gemfile)
- hoe_bundler_add_dependencies(self.extra_dev_deps, gemfile, ", :group => [:development, :test]")
+ unless args[:use_gemspec]
+ hoe_bundler_add_dependencies(self.extra_deps, gemfile)
+ hoe_bundler_add_dependencies(self.extra_dev_deps, gemfile, ", :group => [:development, :test]")
+ end
+
gemfile.puts "# vim: syntax=ruby"
gemfile.rewind
gemfile.read
end