mirror of
https://github.com/github/rails.git
synced 2026-01-10 07:07:54 -05:00
Merge pull request #5896 from sferik/revert_5861
Revert #5861. Feature-detect which MultiJson API to use.
This commit is contained in:
@@ -19,5 +19,5 @@ Gem::Specification.new do |s|
|
||||
s.rdoc_options.concat ['--encoding', 'UTF-8']
|
||||
|
||||
s.add_dependency('i18n', '~> 0.6')
|
||||
s.add_dependency('multi_json', '>= 1.0', '< 1.3')
|
||||
s.add_dependency('multi_json', '~> 1.0')
|
||||
end
|
||||
|
||||
@@ -9,7 +9,13 @@ module ActiveSupport
|
||||
module JSON
|
||||
class << self
|
||||
def decode(json, options ={})
|
||||
data = MultiJson.decode(json, options)
|
||||
# Can't reliably detect whether MultiJson responds to load, since it's
|
||||
# a reserved word. Use adapter as a proxy for new features.
|
||||
data = if MultiJson.respond_to?(:adapter)
|
||||
MultiJson.load(json, options)
|
||||
else
|
||||
MultiJson.decode(json, options)
|
||||
end
|
||||
if ActiveSupport.parse_json_times
|
||||
convert_dates_from(data)
|
||||
else
|
||||
@@ -18,12 +24,20 @@ module ActiveSupport
|
||||
end
|
||||
|
||||
def engine
|
||||
MultiJson.engine
|
||||
if MultiJson.respond_to?(:adapter)
|
||||
MultiJson.adapter
|
||||
else
|
||||
MultiJson.engine
|
||||
end
|
||||
end
|
||||
alias :backend :engine
|
||||
|
||||
def engine=(name)
|
||||
MultiJson.engine = name
|
||||
if MultiJson.respond_to?(:use)
|
||||
MultiJson.use name
|
||||
else
|
||||
MultiJson.engine = name
|
||||
end
|
||||
end
|
||||
alias :backend= :engine=
|
||||
|
||||
|
||||
Reference in New Issue
Block a user