module MstdnIvory::Stream
Public Instance Methods
connect(request)
click to toggle source
# File lib/mstdn_ivory/stream.rb, line 27 def connect(request) client = TCPSocket.open(request.socket_host, request.socket_port) ssl_client = OpenSSL::SSL::SSLSocket.new(client) ssl_client.connect request.stream(ssl_client) ssl_client end
stream(path, options = {}, &block)
click to toggle source
# File lib/mstdn_ivory/stream.rb, line 9 def stream(path, options = {}, &block) stream_request(:get, path, options, &block) end
stream_request(method, path, params, &block)
click to toggle source
# File lib/mstdn_ivory/stream.rb, line 13 def stream_request(method, path, params, &block) uri = Addressable::URI.parse(self.base_url + path) request = HTTP::Request.new(verb: method, uri: uri + '?' + to_url_params(params), headers: self.headers) client = connect(request) parser = MstdnIvory::Parser.new(&block) while (body = client.readpartial(4096)) parser << body end end
to_url_params(params)
click to toggle source
# File lib/mstdn_ivory/stream.rb, line 38 def to_url_params(params) work = Addressable::URI.new work.query_values = params work.query end