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")