diff options
author | Azul <azul@riseup.net> | 2013-09-10 18:57:52 +0200 |
---|---|---|
committer | Azul <azul@riseup.net> | 2013-09-10 18:57:52 +0200 |
commit | 7958827a0ba1126646e01314e7c6bb4f86292dc8 (patch) | |
tree | d4079d37c38e025486212d6b9f1d327fd1a7651e /lib/tapicero/json_stream.rb | |
parent | 57140b80f00aab43918a3ec3276062823971dec7 (diff) |
use our own JsonStream and a created callback in CouchChanges
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 + |