diff options
Diffstat (limited to 'lib/override')
| -rw-r--r-- | lib/override/json.rb | 11 | ||||
| -rw-r--r-- | lib/override/to_json.rb | 20 | 
2 files changed, 31 insertions, 0 deletions
| diff --git a/lib/override/json.rb b/lib/override/json.rb new file mode 100644 index 0000000..8857a22 --- /dev/null +++ b/lib/override/json.rb @@ -0,0 +1,11 @@ +# +# This exists solely to prevent other gems we depend on from +# importing json/ext (e.g. require 'json'). +# +# If json/ext is imported, json/pure cannot work, and we heavily +# rely on the specific behavior of json/pure. +# +# This trick only works if this directory is early in the +# include path. +# +require 'json/pure' diff --git a/lib/override/to_json.rb b/lib/override/to_json.rb new file mode 100644 index 0000000..73fbe5c --- /dev/null +++ b/lib/override/to_json.rb @@ -0,0 +1,20 @@ +# +# activesupport/lib/core_ext/object/to_json.rb overrides to_json for +# most core objects like so: +# +#    [Object, Array, FalseClass, Float, Hash, Integer, NilClass, String, TrueClass].each do |klass| +#      klass.class_eval do +#        # Dumps object in JSON (JavaScript Object Notation). See www.json.org for more info. +#        def to_json(options = nil) +#          ActiveSupport::JSON.encode(self, options) +#        end +#      end +#    end +# +# We cannot tolerate this. We need the normal to_json to be called, not +# ActiveSupport's custom version. +# +# This file exists to override the behavior of ActiveSupport. This file will get included +# instead of the normal to_json.rb. +# + | 
