@@ -550,6 +550,7 @@ def pretty_generate(obj, opts = nil)
550550 :create_additions => nil ,
551551 }
552552 # :call-seq:
553+ # JSON.unsafe_load(source, options = {}) -> object
553554 # JSON.unsafe_load(source, proc = nil, options = {}) -> object
554555 #
555556 # Returns the Ruby objects created by parsing the given +source+.
@@ -681,7 +682,12 @@ def pretty_generate(obj, opts = nil)
681682 #
682683 def unsafe_load ( source , proc = nil , options = nil )
683684 opts = if options . nil?
684- _unsafe_load_default_options
685+ if proc && proc . is_a? ( Hash )
686+ options , proc = proc , nil
687+ options
688+ else
689+ _unsafe_load_default_options
690+ end
685691 else
686692 _unsafe_load_default_options . merge ( options )
687693 end
@@ -709,6 +715,7 @@ def unsafe_load(source, proc = nil, options = nil)
709715 end
710716
711717 # :call-seq:
718+ # JSON.load(source, options = {}) -> object
712719 # JSON.load(source, proc = nil, options = {}) -> object
713720 #
714721 # Returns the Ruby objects created by parsing the given +source+.
@@ -845,8 +852,18 @@ def unsafe_load(source, proc = nil, options = nil)
845852 # @attributes={"type"=>"Admin", "password"=>"0wn3d"}>}
846853 #
847854 def load ( source , proc = nil , options = nil )
855+ if proc && options . nil? && proc . is_a? ( Hash )
856+ options = proc
857+ proc = nil
858+ end
859+
848860 opts = if options . nil?
849- _load_default_options
861+ if proc && proc . is_a? ( Hash )
862+ options , proc = proc , nil
863+ options
864+ else
865+ _load_default_options
866+ end
850867 else
851868 _load_default_options . merge ( options )
852869 end
0 commit comments