Merged updates from trunk into stable branch
[feedcatcher.git] / vendor / rails / activesupport / lib / active_support / json / encoding.rb
1 module ActiveSupport
2 module JSON
3 class CircularReferenceError < StandardError
4 end
5
6 # Converts a Ruby object into a JSON string.
7 def self.encode(value, options = {})
8 seen = (options[:seen] ||= [])
9 raise CircularReferenceError, 'object references itself' if seen.include?(value)
10 seen << value
11 value.send(:to_json, options)
12 ensure
13 seen.pop
14 end
15 end
16 end
17
18 require 'active_support/json/variable'
19 require 'active_support/json/encoders/date'
20 require 'active_support/json/encoders/date_time'
21 require 'active_support/json/encoders/enumerable'
22 require 'active_support/json/encoders/false_class'
23 require 'active_support/json/encoders/hash'
24 require 'active_support/json/encoders/nil_class'
25 require 'active_support/json/encoders/numeric'
26 require 'active_support/json/encoders/object'
27 require 'active_support/json/encoders/regexp'
28 require 'active_support/json/encoders/string'
29 require 'active_support/json/encoders/symbol'
30 require 'active_support/json/encoders/time'
31 require 'active_support/json/encoders/true_class'