Represents one appraisal and its dependencies
# File lib/appraisal/appraisal.rb, line 10 def initialize(name, source_gemfile) @name = name @gemfile = source_gemfile.dup end
# File lib/appraisal/appraisal.rb, line 39 def bundle_command gemfile = "--gemfile='#{gemfile_path}'" "bundle check #{gemfile} || bundle install #{gemfile}" end
# File lib/appraisal/appraisal.rb, line 15 def gem(name, *requirements) gemfile.gem(name, *requirements) end
# File lib/appraisal/appraisal.rb, line 31 def gemfile_path unless ::File.exist?(gemfile_root) FileUtils.mkdir(gemfile_root) end ::File.join(gemfile_root, "#{clean_name}.gemfile") end
# File lib/appraisal/appraisal.rb, line 27 def install Command.new(bundle_command).run end
# File lib/appraisal/appraisal.rb, line 19 def write_gemfile ::File.open(gemfile_path, "w") do |file| file.puts("# This file was generated by Appraisal") file.puts file.write(gemfile.to_s) end end
# File lib/appraisal/appraisal.rb, line 50 def clean_name name.gsub(/[^\w\.]/, '_') end
# File lib/appraisal/appraisal.rb, line 46 def gemfile_root ::File.join(Dir.pwd, "gemfiles") end