diff options
author | Godfrey Chan <godfreykfc@gmail.com> | 2013-11-05 20:05:58 -0800 |
---|---|---|
committer | Godfrey Chan <godfreykfc@gmail.com> | 2013-11-05 22:26:45 -0800 |
commit | ff1192fea40c55a11c52e26f22a814d68d058170 (patch) | |
tree | 6cc0b55aeed8013c2bf9aa39dac0eb4f9733249d /actionpack/lib | |
parent | dcee010ce8c05cd0180e691ca165d774fba60de7 (diff) | |
download | rails-ff1192fea40c55a11c52e26f22a814d68d058170.tar.gz rails-ff1192fea40c55a11c52e26f22a814d68d058170.tar.bz2 rails-ff1192fea40c55a11c52e26f22a814d68d058170.zip |
Eliminate `JSON.{parse,load,generate,dump}` and `def to_json`
JSON.{dump,generate} offered by the JSON gem is not compatiable with
Rails at the moment and can cause a lot of subtle bugs when passed
certain data structures. This changed all direct usage of the JSON gem
in internal Rails code to always go through AS::JSON.{decode,encode}.
We also shouldn't be implementing `to_json` most of the time, and
these occurances are replaced with an equivilent `as_json`
implementation to avoid problems down the road.
See [1] for all the juicy details.
[1]: intridea/multi_json#138 (comment)
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_dispatch/journey/gtg/transition_table.rb | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/actionpack/lib/action_dispatch/journey/gtg/transition_table.rb b/actionpack/lib/action_dispatch/journey/gtg/transition_table.rb index 971cb3447f..5a79059ed6 100644 --- a/actionpack/lib/action_dispatch/journey/gtg/transition_table.rb +++ b/actionpack/lib/action_dispatch/journey/gtg/transition_table.rb @@ -43,9 +43,7 @@ module ActionDispatch move_string(t, a).concat(move_regexp(t, a)) end - def to_json - require 'json' - + def as_json(options = nil) simple_regexp = Hash.new { |h,k| h[k] = {} } @regexp_states.each do |from, hash| @@ -54,11 +52,11 @@ module ActionDispatch end end - JSON.dump({ + { regexp_states: simple_regexp, string_states: @string_states, accepting: @accepting - }) + } end def to_svg |