diff options
Diffstat (limited to 'lib/tapicero/json_stream.rb')
-rw-r--r-- | lib/tapicero/json_stream.rb | 28 |
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 + |