Sha256: c185ca6aeaa15cde6a6e46c3eb742084a0445dc3480ac742e210fb1e0487274e
Contents?: true
Size: 1.19 KB
Versions: 3
Compression:
Stored size: 1.19 KB
Contents
require 'appraisal/dependency' require 'appraisal/gemspec' module Appraisal # Load bundler Gemfiles and merge dependencies class Gemfile attr_reader :dependencies def initialize @dependencies = {} end def load(path) run(IO.read(path)) end def run(definitions) instance_eval(definitions, __FILE__, __LINE__) end def gem(name, *requirements) @dependencies[name] = Dependency.new(name, requirements) end def source(source) @source = source end def to_s [source_entry, dependencies_entry, gemspec_entry].join("\n\n") end def dup Gemfile.new.tap do |gemfile| gemfile.source @source dependencies.values.each do |dependency| gemfile.gem(dependency.name, *dependency.requirements) end gemfile.gemspec(@gemspec.options) if @gemspec end end def gemspec(options = {}) @gemspec = Gemspec.new(options) end protected def source_entry %(source "#{@source}") end def dependencies_entry dependencies.values.map { |dependency| dependency.to_s }.join("\n") end def gemspec_entry @gemspec.to_s end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
appraisal-0.3.4 | lib/appraisal/gemfile.rb |
appraisal-0.3.3 | lib/appraisal/gemfile.rb |
appraisal-0.3.1 | lib/appraisal/gemfile.rb |