blob: 967b2d303b7ea74f8693d5046df6ad36bf2e64ec [file] [log] [blame]
HERE = File.dirname(__FILE__) unless defined?(HERE)
ROOT = File.join(HERE, "..") unless defined?(ROOT)
$LOAD_PATH << File.join(ROOT, "lib")
$LOAD_PATH << File.join(HERE, "support")
require "yaml"
if ENV["YAMLER"] && defined?(YAML::ENGINE)
YAML::ENGINE.yamler = ENV["YAMLER"]
end
ruby_version = defined?(JRUBY_VERSION) ? "JRuby #{JRUBY_VERSION} in #{RUBY_VERSION} mode" : "Ruby #{RUBY_VERSION}"
yaml_engine = defined?(YAML::ENGINE) ? YAML::ENGINE.yamler : "syck"
libyaml_version = yaml_engine == "psych" && Psych.const_defined?("LIBYAML_VERSION", false) ? Psych::LIBYAML_VERSION : "N/A"
env_info = [
ruby_version,
"YAML: #{yaml_engine} (#{YAML::VERSION}) (libyaml: #{libyaml_version})",
"Monkeypatch: #{ENV['MONKEYPATCH_YAML']}"
]
puts env_info.join(", ")
# Caching references to these methods before loading safe_yaml in order to test
# that they aren't touched unless you actually require safe_yaml (see yaml_spec.rb).
ORIGINAL_YAML_LOAD = YAML.method(:load)
ORIGINAL_YAML_LOAD_FILE = YAML.method(:load_file)
require "safe_yaml/load"
require "ostruct"
require "hashie"
require "heredoc_unindent"
# Stolen from Rails:
# https://github.com/rails/rails/blob/3-2-stable/activesupport/lib/active_support/core_ext/kernel/reporting.rb#L10-25
def silence_warnings
$VERBOSE = nil; yield
ensure
$VERBOSE = true
end
require File.join(HERE, "resolver_specs")