diff --git a/lib/rabl-rails.rb b/lib/rabl-rails.rb index d6b645b..830c797 100644 --- a/lib/rabl-rails.rb +++ b/lib/rabl-rails.rb @@ -27,7 +27,6 @@ module RablRails @@include_json_root = true mattr_reader :json_engine - @@json_engine = :yajl mattr_accessor :use_custom_responder @@use_custom_responder = false @@ -42,7 +41,7 @@ module RablRails end def self.json_engine=(name) - MultiJson.engine = name + MultiJson.respond_to?(:use) ? MultiJson.use(name) : MultiJson.engine = name @@json_engine = name rescue LoadError Rails.logger.warn %Q(WARNING: rabl-rails could not load "#{self.json_engine}" as JSON engine, fallback to default) @@ -53,6 +52,6 @@ module RablRails end def self.load_default_engines! - self.json_engine = :yajl + self.json_engine = MultiJson.respond_to?(default_adapter) ? MultiJson.default_adapter : MultiJson.default_engine end end diff --git a/lib/rabl-rails/renderers/json.rb b/lib/rabl-rails/renderers/json.rb index 632aaec..5ab487a 100644 --- a/lib/rabl-rails/renderers/json.rb +++ b/lib/rabl-rails/renderers/json.rb @@ -3,7 +3,7 @@ module RablRails class JSON < Base def format_output(hash) hash = { _options[:root_name] => hash } if _options[:root_name] && RablRails.include_json_root - MultiJson.encode(hash) + MultiJson.respond_to?(:dump) ? MultiJson.dump(hash) : MultiJson.encode(hash) end end end