Skip to content

Commit 167f559

Browse files
committed
Make all adapters read IO object before load
Related #156
1 parent 27148a1 commit 167f559

5 files changed

Lines changed: 1 addition & 5 deletions

File tree

lib/multi_json/adapter.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ def defaults(action, value)
1717

1818
def load(string, options={})
1919
raise self::ParseError if blank?(string)
20+
string = string.read if string.respond_to?(:read)
2021
instance.load(string, load_options(options).merge(MultiJson.load_options(options)).merge!(options))
2122
end
2223

lib/multi_json/adapters/gson.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ class Gson < Adapter
99
ParseError = ::Gson::DecodeError
1010

1111
def load(string, options={})
12-
string = string.read if StringIO === string
1312
::Gson::Decoder.new(options).decode(string)
1413
end
1514

lib/multi_json/adapters/json_common.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ class JsonCommon < Adapter
66
defaults :load, :create_additions => false, :quirks_mode => true
77

88
def load(string, options={})
9-
string = string.read if string.respond_to?(:read)
10-
119
if string.respond_to?(:force_encoding)
1210
string = string.dup.force_encoding(::Encoding::ASCII_8BIT)
1311
end

lib/multi_json/adapters/nsjsonserialization.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ class Nsjsonserialization < MultiJson::Adapters::OkJson
77
ParseError = ::MultiJson::OkJson::Error
88

99
def load(string, options={})
10-
string = string.read if string.respond_to?(:read)
1110
data = string.dataUsingEncoding(NSUTF8StringEncoding)
1211
object = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves, error: nil)
1312
if object

lib/multi_json/adapters/ok_json.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ class OkJson < Adapter
99
ParseError = ::MultiJson::OkJson::Error
1010

1111
def load(string, options={})
12-
string = string.read if string.respond_to?(:read)
1312
result = ::MultiJson::OkJson.decode("[#{string}]").first
1413
options[:symbolize_keys] ? symbolize_keys(result) : result
1514
rescue ArgumentError # invalid byte sequence in UTF-8

0 commit comments

Comments
 (0)