Module: Hoe::Bundler
- Defined in:
- lib/hoe/bundler.rb
Overview
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>
Constant Summary collapse
- VERSION =
:nodoc:
"1.5.0"
- DEFAULT_SOURCE =
'https://rubygems.org/'
- DEFAULT_USE_GEMSPEC =
false
Instance Method Summary collapse
- #define_bundler_tasks ⇒ Object
- #hoe_bundler_add_dependencies(deps, gemfile, postfix = nil) ⇒ Object
- #hoe_bundler_contents(args = {}) ⇒ Object
Instance Method Details
#define_bundler_tasks ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/hoe/bundler.rb', line 14 def define_bundler_tasks desc "generate a bundler Gemfile from your Hoe.spec dependencies" 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(args) end end end |
#hoe_bundler_add_dependencies(deps, gemfile, postfix = nil) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/hoe/bundler.rb', line 48 def hoe_bundler_add_dependencies(deps, gemfile, postfix=nil) deps2 = {} deps.each do |name, version| version ||= ">=0" deps2[name] = version unless deps2.key?(name) end deps2.each do |name, version| output = [%Q{gem "#{name}"}] Array(version).each do |ver| output << %Q{"#{ver.gsub(/ /,'')}"} end gemfile.puts %Q{#{output.join(", ")}#{postfix}} end gemfile.puts end |
#hoe_bundler_contents(args = {}) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/hoe/bundler.rb', line 24 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 "<< ((args[:source] =~ /^https?:\/\//) ? "\"#{args[:source]}\"" : ":#{args[:source]}") gemfile.puts "gemspec" if args[:use_gemspec] gemfile.puts 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 |