summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ffi_yajl/parser.rb4
-rw-r--r--spec/ffi_yajl/parser_spec.rb1
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/ffi_yajl/parser.rb b/lib/ffi_yajl/parser.rb
index 0f44477..d095011 100644
--- a/lib/ffi_yajl/parser.rb
+++ b/lib/ffi_yajl/parser.rb
@@ -50,6 +50,10 @@ module FFI_Yajl
# XXX: bug-compat with ruby-yajl
return nil if str == ""
+ if str.respond_to?(:read)
+ str = str.read()
+ end
+
# call either the ext or ffi hook
do_yajl_parse(str, yajl_opts)
end
diff --git a/spec/ffi_yajl/parser_spec.rb b/spec/ffi_yajl/parser_spec.rb
index c3424ef..f896bf7 100644
--- a/spec/ffi_yajl/parser_spec.rb
+++ b/spec/ffi_yajl/parser_spec.rb
@@ -150,7 +150,6 @@ describe "FFI_Yajl::Parser" do
let(:json) { StringIO.new('{"key": 1234}') }
it "should parse" do
- skip "handle StringIOs"
expect(parser).to eq({"key" => 1234})
end
end