Load bundler Gemfiles and merge dependencies
# File lib/appraisal/gemfile.rb, line 9 def initialize @sources = [] @dependencies = [] end
# File lib/appraisal/gemfile.rb, line 39 def dup gemfile = Gemfile.new @sources.each { |source| gemfile.source(source) } dependencies.each do |dependency| gemfile.gem(dependency.name, *dependency.requirements) end gemfile.gemspec(@gemspec.options) if @gemspec gemfile end
# File lib/appraisal/gemfile.rb, line 22 def gem(name, *requirements) @dependencies.reject! { |dependency| dependency.name == name } @dependencies << Dependency.new(name, requirements) end
# File lib/appraisal/gemfile.rb, line 49 def gemspec(options = {}) @gemspec = Gemspec.new(options) end
# File lib/appraisal/gemfile.rb, line 27 def group(*names) # ignore the group end
# File lib/appraisal/gemfile.rb, line 14 def load(path) run(IO.read(path)) end
# File lib/appraisal/gemfile.rb, line 18 def run(definitions) instance_eval(definitions, __FILE__, __LINE__) end
# File lib/appraisal/gemfile.rb, line 31 def source(source) @sources << source end
# File lib/appraisal/gemfile.rb, line 35 def to_s [source_entry, dependencies_entry, gemspec_entry].join("\n\n") end
# File lib/appraisal/gemfile.rb, line 59 def dependencies_entry dependencies.map { |dependency| dependency.to_s }.join("\n") end
# File lib/appraisal/gemfile.rb, line 63 def gemspec_entry @gemspec.to_s end
# File lib/appraisal/gemfile.rb, line 55 def source_entry @sources.map { |source| "source #{source.inspect}" }.join("\n") end