mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
use ! " " YAML string literal syntax rather than removing both quotes
This commit is contained in:
parent
7642b7531d
commit
370bcd1a01
2 changed files with 5 additions and 7 deletions
|
@ -20,8 +20,8 @@ module ActiveSupport
|
|||
json = json.read
|
||||
end
|
||||
YAML.load(convert_json_to_yaml(json))
|
||||
rescue *EXCEPTIONS
|
||||
raise ParseError, "Invalid JSON string"
|
||||
rescue *EXCEPTIONS => e
|
||||
raise ParseError, "Invalid JSON string: '%s'" % json
|
||||
end
|
||||
|
||||
protected
|
||||
|
@ -39,7 +39,7 @@ module ActiveSupport
|
|||
if json[pos..scanner.pos-2] =~ DATE_REGEX
|
||||
# found a date, track the exact positions of the quotes so we can
|
||||
# overwrite them with spaces later.
|
||||
times << pos << scanner.pos
|
||||
times << pos
|
||||
end
|
||||
quoting = false
|
||||
end
|
||||
|
@ -70,7 +70,7 @@ module ActiveSupport
|
|||
chunk = scanner.peek(right_pos[i] - scanner.pos + 1)
|
||||
# overwrite the quotes found around the dates with spaces
|
||||
while times.size > 0 && times[0] <= right_pos[i]
|
||||
chunk[times.shift - scanner.pos - 1] = ' '
|
||||
chunk.insert(times.shift - scanner.pos - 1, '! ')
|
||||
end
|
||||
chunk.gsub!(/\\([\\\/]|u[[:xdigit:]]{4})/) do
|
||||
ustr = $1
|
||||
|
|
|
@ -57,14 +57,12 @@ class TestJSONDecoding < ActiveSupport::TestCase
|
|||
ActiveSupport.parse_json_times = true
|
||||
silence_warnings do
|
||||
ActiveSupport::JSON.with_backend backend do
|
||||
assert_nothing_raised do
|
||||
assert_equal expected, ActiveSupport::JSON.decode(json)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if backends.include?("JSONGem")
|
||||
test "json decodes time json with time parsing disabled" do
|
||||
|
|
Loading…
Reference in a new issue