Method: Bundler::Dsl#eval_gemfile

Defined in:
lib/bundler/dsl.rb

#eval_gemfile(gemfile, contents = nil) ⇒ Object

[View source]

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/bundler/dsl.rb', line 44

def eval_gemfile(gemfile, contents = nil)
  with_gemfile(gemfile) do |current_gemfile|
    contents ||= Bundler.read_file(current_gemfile)
    instance_eval(contents, current_gemfile, 1)
  rescue GemfileEvalError => e
    message = "There was an error evaluating `#{File.basename current_gemfile}`: #{e.message}"
    raise DSLError.new(message, current_gemfile, e.backtrace, contents)
  rescue GemfileError, InvalidArgumentError, InvalidOption, DeprecatedError, ScriptError => e
    message = "There was an error parsing `#{File.basename current_gemfile}`: #{e.message}"
    raise DSLError.new(message, current_gemfile, e.backtrace, contents)
  rescue StandardError => e
    raise unless e.backtrace_locations.first.path == current_gemfile
    message = "There was an error parsing `#{File.basename current_gemfile}`: #{e.message}"
    raise DSLError.new(message, current_gemfile, e.backtrace, contents)
  end
end