summaryrefslogtreecommitdiff
path: root/lib/tapicero/json_stream.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tapicero/json_stream.rb')
-rw-r--r--lib/tapicero/json_stream.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/tapicero/json_stream.rb b/lib/tapicero/json_stream.rb
new file mode 100644
index 0000000..d906ce2
--- /dev/null
+++ b/lib/tapicero/json_stream.rb
@@ -0,0 +1,28 @@
+require 'net/http'
+require 'uri'
+require 'yajl'
+
+
+# Since Yajl HTTP Stream will go a way in version 2.0 here's a simple substitude.
+module Tapicero
+ class JsonStream
+
+ def self.get(url, options, &block)
+ uri = URI(url)
+ parser = Yajl::Parser.new(options)
+ parser.on_parse_complete = block
+ Net::HTTP.start(uri.host, uri.port) do |http|
+ request = Net::HTTP::Get.new uri.request_uri
+
+
+ http.request request do |response|
+ response.read_body do |chunk|
+ parser << chunk
+ end
+ end
+ end
+
+ end
+ end
+end
+