Parent

Class Index [+]

Quicksearch

ActiveSupport::JSON::Encoding::Encoder

Attributes

options[R]

Public Class Methods

new(options = nil) click to toggle source
    # File lib/active_support/json/encoding.rb, line 39
39:         def initialize(options = nil)
40:           @options = options
41:           @seen = []
42:         end

Public Instance Methods

as_json(value) click to toggle source

like encode, but only calls as_json, without encoding to string

    # File lib/active_support/json/encoding.rb, line 52
52:         def as_json(value)
53:           check_for_circular_references(value) do
54:             value.as_json(options_for(value))
55:           end
56:         end
encode(value, use_options = true) click to toggle source
    # File lib/active_support/json/encoding.rb, line 44
44:         def encode(value, use_options = true)
45:           check_for_circular_references(value) do
46:             jsonified = use_options ? value.as_json(options_for(value)) : value.as_json
47:             jsonified.encode_json(self)
48:           end
49:         end
escape(string) click to toggle source
    # File lib/active_support/json/encoding.rb, line 67
67:         def escape(string)
68:           Encoding.escape(string)
69:         end
options_for(value) click to toggle source
    # File lib/active_support/json/encoding.rb, line 58
58:         def options_for(value)
59:           if value.is_a?(Array) || value.is_a?(Hash)
60:             # hashes and arrays need to get encoder in the options, so that they can detect circular references
61:             (options || {}).merge(:encoder => self)
62:           else
63:             options
64:           end
65:         end

Private Instance Methods

check_for_circular_references(value) click to toggle source
    # File lib/active_support/json/encoding.rb, line 72
72:           def check_for_circular_references(value)
73:             if @seen.any? { |object| object.equal?(value) }
74:               raise CircularReferenceError, 'object references itself'
75:             end
76:             @seen.unshift value
77:             yield
78:           ensure
79:             @seen.shift
80:           end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.