class Appraisal::Gemfile

Load bundler Gemfiles and merge dependencies

Attributes

dependencies[R]

Public Class Methods

new() click to toggle source
# File lib/appraisal/gemfile.rb, line 9
def initialize
  @sources = []
  @dependencies = []
end

Public Instance Methods

dup() click to toggle source
# 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
gem(name, *requirements) click to toggle source
# File lib/appraisal/gemfile.rb, line 22
def gem(name, *requirements)
  @dependencies.reject! { |dependency| dependency.name == name }
  @dependencies << Dependency.new(name, requirements)
end
gemspec(options = {}) click to toggle source
# File lib/appraisal/gemfile.rb, line 49
def gemspec(options = {})
  @gemspec = Gemspec.new(options)
end
group(*names) click to toggle source
# File lib/appraisal/gemfile.rb, line 27
def group(*names)
  # ignore the group
end
load(path) click to toggle source
# File lib/appraisal/gemfile.rb, line 14
def load(path)
  run(IO.read(path))
end
run(definitions) click to toggle source
# File lib/appraisal/gemfile.rb, line 18
def run(definitions)
  instance_eval(definitions, __FILE__, __LINE__)
end
source(source) click to toggle source
# File lib/appraisal/gemfile.rb, line 31
def source(source)
  @sources << source
end
to_s() click to toggle source
# File lib/appraisal/gemfile.rb, line 35
def to_s
  [source_entry, dependencies_entry, gemspec_entry].join("\n\n")
end

Protected Instance Methods

dependencies_entry() click to toggle source
# File lib/appraisal/gemfile.rb, line 59
def dependencies_entry
  dependencies.map { |dependency| dependency.to_s }.join("\n")
end
gemspec_entry() click to toggle source
# File lib/appraisal/gemfile.rb, line 63
def gemspec_entry
  @gemspec.to_s
end
source_entry() click to toggle source
# File lib/appraisal/gemfile.rb, line 55
def source_entry
  @sources.map { |source| "source #{source.inspect}" }.join("\n")
end