Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Simplify code in AS json encoder

  • Loading branch information...
commit 046e27a7338f2961c10e9d133e0e2229b51c2ba8 1 parent 253cdc8
@bogdan bogdan authored
Showing with 8 additions and 15 deletions.
  1. +8 −15 activesupport/lib/active_support/json/encoding.rb
View
23 activesupport/lib/active_support/json/encoding.rb
@@ -38,7 +38,6 @@ module Encoding #:nodoc:
class CircularReferenceError < StandardError; end
class Encoder
- attr_reader :options
def initialize(options = nil)
@options = options || {}
@@ -63,9 +62,9 @@ def options_for(value)
if value.is_a?(Array) || value.is_a?(Hash)
# hashes and arrays need to get encoder in the options, so that
# they can detect circular references.
- options.merge(:encoder => self)
+ @options.merge(:encoder => self)
else
- options.dup
+ @options.dup
end
end
@@ -253,18 +252,6 @@ def as_json(options = nil) #:nodoc:
module Enumerable
def as_json(options = nil) #:nodoc:
- to_a.as_json(options)
- end
-end
-
-class Range
- def as_json(options = nil) #:nodoc:
- to_s
- end
-end
-
-class Array
- def as_json(options = nil) #:nodoc:
# use encoder as a proxy to call as_json on all elements, to protect from circular references
encoder = options && options[:encoder] || ActiveSupport::JSON::Encoding::Encoder.new(options)
map { |v| encoder.as_json(v, options) }
@@ -276,6 +263,12 @@ def encode_json(encoder) #:nodoc:
end
end
+class Range
+ def as_json(options = nil) #:nodoc:
+ to_s
+ end
+end
+
class Hash
def as_json(options = nil) #:nodoc:
# create a subset of the hash by applying :only or :except
Please sign in to comment.
Something went wrong with that request. Please try again.