Sha256: 04aad72f995671a4eef04b8a458550ec222cef0f6db2a48fbb80bec6efdfa6f2

Contents?: true

Size: 1.35 KB

Versions: 64

Compression:

Stored size: 1.35 KB

Contents

require 'bundler'
module BundlerHelpers
  extend self
  def install_bundle(dir)
    Dir.chdir(dir) do
      command = "env RUBYOPT= BUNDLE_GEMFILE=Gemfile bundle install"
      system(command)
      $?.exitstatus
    end
  end

  def ensure_installed(dir)
    gemfile_lock = dir + "/Gemfile.lock"
    gemfile = dir + "/Gemfile"
    bundle_environment = dir + "/.bundle/environment.rb"
    case
    when File.exist?(gemfile_lock) && File.mtime(gemfile) > File.mtime(gemfile_lock)
      puts "Gemfile #{gemfile} has changed since it was locked. Re-locking..."
      FileUtils.rm(gemfile_lock)
      FileUtils.rm_rf(dir + "/.bundle")
    when ! File.exist?(bundle_environment)
      puts "Bundle #{gemfile} not installed.  Installing..."
    when File.mtime(bundle_environment) < File.mtime(gemfile_lock)
      puts "#{gemfile_lock} is newer than #{bundle_environment}.  Reinstalling"
    else
      return false
    end
    install_bundle(dir)
  end

  def expand_gemfile(gemfile)
    possibilities = [File.expand_path(gemfile, Dir.pwd), SporkWorld::GEMFILES_ROOT + gemfile + "Gemfile"]
    possibilities.detect {|f| File.exist?(f)} || raise(RuntimeError, %(Gemfile not found:\n #{possibilities * "\n"}))
  end

  def set_gemfile(gemfile)
    gemfile = expand_gemfile(gemfile || "rails3.0")
    ensure_installed(File.dirname(gemfile))
    ENV["BUNDLE_GEMFILE"] = gemfile.to_s
  end
end

Version data entries

64 entries across 64 versions & 3 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.7.4 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.7.3 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.7.2 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.7.1 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.7.0 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.6.9 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.6.8 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.6.7 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.6.6 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.6.5 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.6.4 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.6.3 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.6.2 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.6.1 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.6.0 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.5.17 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.5.16 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.5.15 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb
classiccms-0.5.14 vendor/bundle/gems/spork-0.9.0/features/support/bundler_helpers.rb