2008-04-07 23:45:26 -04:00
|
|
|
|
2005-12-26 22:11:03 -05:00
|
|
|
|
|
|
|
module ActiveSupport
|
2008-04-07 23:45:26 -04:00
|
|
|
# If true, use ISO 8601 format for dates and times. Otherwise, fall back to the ActiveSupport legacy format.
|
2008-04-01 16:25:26 -04:00
|
|
|
mattr_accessor :use_standard_json_time_format
|
|
|
|
|
2008-04-07 23:45:26 -04:00
|
|
|
class << self
|
|
|
|
def escape_html_entities_in_json
|
|
|
|
@escape_html_entities_in_json
|
|
|
|
end
|
|
|
|
|
|
|
|
def escape_html_entities_in_json=(value)
|
|
|
|
ActiveSupport::JSON::Encoding.escape_regex = \
|
|
|
|
if value
|
|
|
|
/[\010\f\n\r\t"\\><&]/
|
|
|
|
else
|
|
|
|
/[\010\f\n\r\t"\\]/
|
|
|
|
end
|
|
|
|
@escape_html_entities_in_json = value
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2007-03-18 03:05:58 -04:00
|
|
|
module JSON
|
|
|
|
RESERVED_WORDS = %w(
|
|
|
|
abstract delete goto private transient
|
|
|
|
boolean do if protected try
|
|
|
|
break double implements public typeof
|
|
|
|
byte else import return var
|
|
|
|
case enum in short void
|
|
|
|
catch export instanceof static volatile
|
|
|
|
char extends int super while
|
|
|
|
class final interface switch with
|
|
|
|
const finally long synchronized
|
|
|
|
continue float native this
|
|
|
|
debugger for new throw
|
|
|
|
default function package throws
|
|
|
|
) #:nodoc:
|
2006-03-03 14:34:23 -05:00
|
|
|
|
2005-12-26 22:11:03 -05:00
|
|
|
class << self
|
2007-03-18 03:05:58 -04:00
|
|
|
def valid_identifier?(key) #:nodoc:
|
|
|
|
key.to_s =~ /^[[:alpha:]_$][[:alnum:]_$]*$/ && !reserved_word?(key)
|
2005-12-26 22:11:03 -05:00
|
|
|
end
|
2007-03-18 03:05:58 -04:00
|
|
|
|
|
|
|
def reserved_word?(key) #:nodoc:
|
|
|
|
RESERVED_WORDS.include?(key.to_s)
|
2006-11-11 13:25:26 -05:00
|
|
|
end
|
2005-12-26 22:11:03 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2008-04-07 23:45:26 -04:00
|
|
|
|
|
|
|
require 'active_support/json/encoding'
|
|
|
|
require 'active_support/json/decoding'
|