class Couch::Server::Request
Public Class Methods
new(req, json=nil, opts={open_timeout: 5*30, read_timeout: 5*30, fail_silent: false})
click to toggle source
# File lib/couch.rb, line 343 def initialize(req, json=nil, opts={open_timeout: 5*30, read_timeout: 5*30, fail_silent: false}) @req=req @json = json @options = opts end
Public Instance Methods
couch_url(couch_url)
click to toggle source
# File lib/couch.rb, line 354 def couch_url(couch_url) @options.merge!({couch_url: couch_url}) self end
fail_silent(fail_silent)
click to toggle source
# File lib/couch.rb, line 369 def fail_silent(fail_silent) @options.merge!({fail_silent: fail_silent}) self end
handle_error(req, res)
click to toggle source
# File lib/couch.rb, line 399 def handle_error(req, res) raise RuntimeError.new("#{res.code}:#{res.message}\nMETHOD:#{req.method}\nURI:#{req.path}\n#{res.body}") end
json(json)
click to toggle source
# File lib/couch.rb, line 349 def json(json) @json = json self end
open_timeout(open_timeout)
click to toggle source
# File lib/couch.rb, line 359 def open_timeout(open_timeout) @options.merge!({open_timeout: open_timeout}) self end
perform()
click to toggle source
# File lib/couch.rb, line 374 def perform @req.basic_auth @options[:name], @options[:password] if @json @req['Content-Type'] = 'application/json;charset=utf-8' @req.body = @json end res = Net::HTTP.start( @options[:couch_url].host, @options[:couch_url].port, {:use_ssl => @options[:couch_url].scheme =='https'} ) do |http| http.open_timeout = @options[:open_timeout] http.read_timeout = @options[:read_timeout] http.request(@req) end unless @options[:fail_silent] or res.kind_of?(Net::HTTPSuccess) # puts "CouchDb responsed with error code #{res.code}" handle_error(@req, res) end res end
read_timeout(read_timeout)
click to toggle source
# File lib/couch.rb, line 364 def read_timeout(read_timeout) @options.merge!({read_timeout: read_timeout}) self end