Sha256: 11066e0043aa3fb8a0bcb69ea3a96d84e8492403f89fda3c2671a5efd969bc04
Contents?: true
Size: 1.74 KB
Versions: 24
Compression:
Stored size: 1.74 KB
Contents
# :stopdoc: # Hack to handle syck's DefaultKey bug # # This file is always loaded AFTER either syck or psych are already # loaded. It then looks at what constants are available and creates # a consistent view on all rubys. # # All this is so that there is always a YAML::Syck::DefaultKey # class no matter if the full yaml library has loaded or not. # $: << ENV['BUNDLER_LIB_PATH'] if ENV['BUNDLER_LIB_PATH'] require 'bundler/psyched_yaml' module YAML # In newer 1.9.2, there is a Syck toplevel constant instead of it # being underneith YAML. If so, reference it back under YAML as # well. if defined? ::Syck Syck = ::Syck # Otherwise, if there is no YAML::Syck, then we've got just psych # loaded, so lets define a stub for DefaultKey. elsif !defined? YAML::Syck module Syck class DefaultKey end end end # Now that we've got something that is always here, define #to_s # so when code tries to use this, it at least just shows up like it # should. module Syck class DefaultKey def to_s '=' end end end end # Sometime in the 1.9 dev cycle, the Syck constant was moved from under YAML # to be a toplevel constant. So gemspecs created under these versions of Syck # will have references to Syck::DefaultKey. # # So we need to be sure that we reference Syck at the toplevel too so that # we can always load these kind of gemspecs. # if !defined?(Syck) Syck = YAML::Syck end # Now that we've got Syck setup in all the right places, store # a reference to the DefaultKey class inside Gem. We do this so that # if later on YAML, etc are redefined, we've still got a consistent # place to find the DefaultKey class for comparison. module Gem SyckDefaultKey = YAML::Syck::DefaultKey end # :startdoc:
Version data entries
24 entries across 24 versions & 1 rubygems