couch-db 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +4 -1
- data/lib/couch.rb +123 -53
- data/lib/couch/db/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e3033182fa750ebed0db9996c0b2249377a3188
|
4
|
+
data.tar.gz: b461244dc466eaeadb3b2de587bbe8844f3f3cc9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35912a5df5d840696f2b255a84dde4552c6e61e322f631df75d34e6bb9066b1e5bf19dc75451ac518bade1c047a32479aa83e10a5e229748558bb1bff63224ff
|
7
|
+
data.tar.gz: d6879f8c757632d04768102b06e3b12f92cfdbe8dbd7cb12931241d6eb761f7b0cafc2e3a15e6f767daab4fe698a6a85d58a457314ecbdd00a7aa11eae8574c9
|
data/.gitignore
CHANGED
data/lib/couch.rb
CHANGED
@@ -15,54 +15,8 @@ class Hash
|
|
15
15
|
end
|
16
16
|
|
17
17
|
module Couch
|
18
|
-
module BasicRequest
|
19
|
-
def delete(uri, open_timeout: 5*30, read_timeout: 5*30, fail_silent: false)
|
20
|
-
req=Net::HTTP::Delete.new(uri)
|
21
|
-
req.basic_auth @options[:name], @options[:password]
|
22
|
-
request(req, open_timeout: open_timeout, read_timeout: read_timeout, fail_silent: fail_silent)
|
23
|
-
end
|
24
|
-
|
25
|
-
def head(uri, open_timeout: 5*30, read_timeout: 5*30, fail_silent: true)
|
26
|
-
req = Net::HTTP::Head.new(uri)
|
27
|
-
req.basic_auth @options[:name], @options[:password]
|
28
|
-
request(req, open_timeout: open_timeout, read_timeout: read_timeout, fail_silent: fail_silent)
|
29
|
-
end
|
30
|
-
|
31
|
-
def get(uri, open_timeout: 5*30, read_timeout: 5*30, fail_silent: false)
|
32
|
-
req = Net::HTTP::Get.new(uri)
|
33
|
-
req.basic_auth @options[:name], @options[:password]
|
34
|
-
request(req, open_timeout: open_timeout, read_timeout: read_timeout, fail_silent: fail_silent)
|
35
|
-
end
|
36
|
-
|
37
|
-
def put(uri, json, open_timeout: 5*30, read_timeout: 5*30, fail_silent: false)
|
38
|
-
posty_request(json, Net::HTTP::Put.new(uri), open_timeout: open_timeout, read_timeout: read_timeout, fail_silent: fail_silent)
|
39
|
-
end
|
40
|
-
|
41
|
-
def post(uri, json, open_timeout: 5*30, read_timeout: 5*30, fail_silent: false)
|
42
|
-
posty_request(json, Net::HTTP::Post.new(uri), open_timeout: open_timeout, read_timeout: read_timeout, fail_silent: fail_silent)
|
43
|
-
end
|
44
|
-
|
45
|
-
def posty_request(json, req, open_timeout: 5*30, read_timeout: 5*30, fail_silent: false)
|
46
|
-
req.basic_auth @options[:name], @options[:password]
|
47
|
-
req['Content-Type'] = 'application/json;charset=utf-8'
|
48
|
-
req.body = json
|
49
|
-
request(req, open_timeout: open_timeout, read_timeout: read_timeout, fail_silent: fail_silent)
|
50
|
-
end
|
51
|
-
|
52
|
-
def request(req, open_timeout: 5*30, read_timeout: 5*30, fail_silent: false)
|
53
|
-
res = Net::HTTP.start(@url.host, @url.port,
|
54
|
-
:use_ssl => @url.scheme =='https') do |http|
|
55
|
-
http.open_timeout = open_timeout
|
56
|
-
http.read_timeout = read_timeout
|
57
|
-
http.request(req)
|
58
|
-
end
|
59
|
-
unless fail_silent or res.kind_of?(Net::HTTPSuccess)
|
60
|
-
# puts "CouchDb responsed with error code #{res.code}"
|
61
|
-
handle_error(req, res)
|
62
|
-
end
|
63
|
-
res
|
64
|
-
end
|
65
18
|
|
19
|
+
module BasicRequest
|
66
20
|
def create_postfix(query_params, default='')
|
67
21
|
if query_params
|
68
22
|
params_a = []
|
@@ -76,10 +30,6 @@ module Couch
|
|
76
30
|
postfix
|
77
31
|
end
|
78
32
|
|
79
|
-
def handle_error(req, res)
|
80
|
-
raise RuntimeError.new("#{res.code}:#{res.message}\nMETHOD:#{req.method}\nURI:#{req.path}\n#{res.body}")
|
81
|
-
end
|
82
|
-
|
83
33
|
module Get
|
84
34
|
# Returns parsed doc from database
|
85
35
|
def get_doc(database, id)
|
@@ -318,8 +268,18 @@ module Couch
|
|
318
268
|
def get_bytesize_array(docs)
|
319
269
|
bytesize = 0
|
320
270
|
docs.each do |doc|
|
321
|
-
#
|
271
|
+
# Note that this may be inexact; see documentation for ObjectSpace.memsize_of
|
322
272
|
bytesize += ObjectSpace.memsize_of doc
|
273
|
+
|
274
|
+
if doc['_attachments']
|
275
|
+
doc['_attachments'].each do |att|
|
276
|
+
att.each do |val|
|
277
|
+
if val['data']
|
278
|
+
bytesize += val['data'].length # Number of chars, i.e. bytes
|
279
|
+
end
|
280
|
+
end
|
281
|
+
end
|
282
|
+
end
|
323
283
|
end
|
324
284
|
bytesize
|
325
285
|
end
|
@@ -350,11 +310,121 @@ module Couch
|
|
350
310
|
if url.is_a? String
|
351
311
|
url = URI(url)
|
352
312
|
end
|
353
|
-
@
|
313
|
+
@couch_url = url
|
354
314
|
@options = options
|
355
315
|
@options[:use_ssl] ||= true
|
356
316
|
end
|
357
317
|
|
318
|
+
def delete(uri, open_timeout: 5*30, read_timeout: 5*30, fail_silent: false)
|
319
|
+
Request.new(Net::HTTP::Delete.new(uri), nil,
|
320
|
+
@options.merge({couch_url: @couch_url, open_timeout: open_timeout, read_timeout: read_timeout, fail_silent: fail_silent})
|
321
|
+
).perform
|
322
|
+
end
|
323
|
+
|
324
|
+
def new_delete(uri)
|
325
|
+
Request.new(Net::HTTP::Delete.new(uri)).couch_url(@couch_url)
|
326
|
+
end
|
327
|
+
|
328
|
+
def head(uri, open_timeout: 5*30, read_timeout: 5*30, fail_silent: true)
|
329
|
+
Request.new(Net::HTTP::Head.new(uri), nil,
|
330
|
+
@options.merge({couch_url: @couch_url, open_timeout: open_timeout, read_timeout: read_timeout, fail_silent: fail_silent})
|
331
|
+
).perform
|
332
|
+
end
|
333
|
+
|
334
|
+
def new_head(uri)
|
335
|
+
Request.new(Net::HTTP::Head.new(uri)).couch_url(@couch_url)
|
336
|
+
end
|
337
|
+
|
338
|
+
def get(uri, open_timeout: 5*30, read_timeout: 5*30, fail_silent: false)
|
339
|
+
Request.new(
|
340
|
+
Net::HTTP::Get.new(uri), nil,
|
341
|
+
@options.merge({couch_url: @couch_url, open_timeout: open_timeout, read_timeout: read_timeout, fail_silent: fail_silent})
|
342
|
+
).perform
|
343
|
+
end
|
344
|
+
|
345
|
+
def new_get(uri)
|
346
|
+
Request.new(Net::HTTP::Get.new(uri)).couch_url(@couch_url)
|
347
|
+
end
|
348
|
+
|
349
|
+
def put(uri, json, open_timeout: 5*30, read_timeout: 5*30, fail_silent: false)
|
350
|
+
Request.new(Net::HTTP::Put.new(uri), json,
|
351
|
+
@options.merge({couch_url: @couch_url, open_timeout: open_timeout, read_timeout: read_timeout, fail_silent: fail_silent})
|
352
|
+
).perform
|
353
|
+
end
|
354
|
+
|
355
|
+
def new_put(uri)
|
356
|
+
Request.new(Net::HTTP::Put.new(uri)).couch_url(@couch_url)
|
357
|
+
end
|
358
|
+
|
359
|
+
def post(uri, json, open_timeout: 5*30, read_timeout: 5*30, fail_silent: false)
|
360
|
+
Request.new(Net::HTTP::Post.new(uri), json,
|
361
|
+
@options.merge({couch_url: @couch_url, open_timeout: open_timeout, read_timeout: read_timeout, fail_silent: fail_silent})
|
362
|
+
).perform
|
363
|
+
end
|
364
|
+
|
365
|
+
def new_post(uri)
|
366
|
+
Request.new(Net::HTTP::Post.new(uri)).couch_url(@couch_url)
|
367
|
+
end
|
368
|
+
|
369
|
+
class Request
|
370
|
+
def initialize(req, json=nil, opts={open_timeout: 5*30, read_timeout: 5*30, fail_silent: false})
|
371
|
+
@req=req
|
372
|
+
@json = json
|
373
|
+
@options = opts
|
374
|
+
end
|
375
|
+
|
376
|
+
def json(json)
|
377
|
+
@json = json
|
378
|
+
self
|
379
|
+
end
|
380
|
+
|
381
|
+
def couch_url(couch_url)
|
382
|
+
@options.merge!({couch_url: couch_url})
|
383
|
+
self
|
384
|
+
end
|
385
|
+
|
386
|
+
def open_timeout(open_timeout)
|
387
|
+
@options.merge!({open_timeout: open_timeout})
|
388
|
+
self
|
389
|
+
end
|
390
|
+
|
391
|
+
def read_timeout(read_timeout)
|
392
|
+
@options.merge!({read_timeout: read_timeout})
|
393
|
+
self
|
394
|
+
end
|
395
|
+
|
396
|
+
def fail_silent(fail_silent)
|
397
|
+
@options.merge!({fail_silent: fail_silent})
|
398
|
+
self
|
399
|
+
end
|
400
|
+
|
401
|
+
def perform
|
402
|
+
@req.basic_auth @options[:name], @options[:password]
|
403
|
+
|
404
|
+
if @json
|
405
|
+
@req['Content-Type'] = 'application/json;charset=utf-8'
|
406
|
+
@req.body = @json
|
407
|
+
end
|
408
|
+
|
409
|
+
res = Net::HTTP.start(@options[:couch_url].host, @options[:couch_url].port,
|
410
|
+
:use_ssl => @options[:couch_url].scheme =='https') do |http|
|
411
|
+
http.open_timeout = @options[:open_timeout]
|
412
|
+
http.read_timeout = @options[:read_timeout]
|
413
|
+
http.request(@req)
|
414
|
+
end
|
415
|
+
|
416
|
+
unless @options[:fail_silent] or res.kind_of?(Net::HTTPSuccess)
|
417
|
+
# puts "CouchDb responsed with error code #{res.code}"
|
418
|
+
handle_error(@req, res)
|
419
|
+
end
|
420
|
+
res
|
421
|
+
end
|
422
|
+
|
423
|
+
def handle_error(req, res)
|
424
|
+
raise RuntimeError.new("#{res.code}:#{res.message}\nMETHOD:#{req.method}\nURI:#{req.path}\n#{res.body}")
|
425
|
+
end
|
426
|
+
end
|
427
|
+
|
358
428
|
include BasicRequest
|
359
429
|
include BasicRequest::Head
|
360
430
|
include BasicRequest::Get
|
data/lib/couch/db/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: couch-db
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maarten Trompper
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|