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. +# + |