Class: Dolly::Connection
Constant Summary
collapse
{ 'Content-Type' => 'application/json', 'Accept' => 'application/json' }
- SECURE_PROTOCOL =
'https'
- DEFAULT_DATABASE =
:default
Instance Attribute Summary collapse
#config_file
Instance Method Summary
collapse
-
#attach(resource, attachment_name, data, headers = {}) ⇒ Object
-
#delete(resource, rev = nil, escape: true) ⇒ Object
-
#get(resource, data = {}) ⇒ Object
-
#initialize(db = DEFAULT_DATABASE, app_env = :development) ⇒ Connection
constructor
A new instance of Connection.
-
#post(resource, data) ⇒ Object
-
#put(resource, data) ⇒ Object
-
#request(method, resource, data = {}) ⇒ Object
-
#skip_migrations? ⇒ Boolean
-
#stats ⇒ Object
-
#tools(path, opts = nil) ⇒ Object
-
#uuids(opts = {}) ⇒ Object
-
#view(resource, opts) ⇒ Object
#rails?
#base_uri, #configuration, #db_name, #env, #host, #port, #protocol
Constructor Details
#initialize(db = DEFAULT_DATABASE, app_env = :development) ⇒ Connection
Returns a new instance of Connection.
25
26
27
28
|
# File 'lib/dolly/connection.rb', line 25
def initialize db = DEFAULT_DATABASE, app_env = :development
@db = db
@app_env = defined?(Rails) ? Rails.env : app_env
end
|
Instance Attribute Details
#app_env ⇒ Object
Returns the value of attribute app_env.
17
18
19
|
# File 'lib/dolly/connection.rb', line 17
def app_env
@app_env
end
|
#db ⇒ Object
Returns the value of attribute db.
17
18
19
|
# File 'lib/dolly/connection.rb', line 17
def db
@db
end
|
Instance Method Details
#attach(resource, attachment_name, data, headers = {}) ⇒ Object
59
60
61
|
# File 'lib/dolly/connection.rb', line 59
def attach resource, attachment_name, data, = {}
request :put, "#{resource.cgi_escape}/#{attachment_name}", { _body: data }.merge(headers: )
end
|
#delete(resource, rev = nil, escape: true) ⇒ Object
49
50
51
52
53
|
# File 'lib/dolly/connection.rb', line 49
def delete resource, rev = nil, escape: true
query = "?rev=#{rev}" if rev
resource = "#{escape ? resource.cgi_escape : resource}#{query}"
request :delete, resource
end
|
#get(resource, data = {}) ⇒ Object
34
35
36
37
|
# File 'lib/dolly/connection.rb', line 34
def get(resource, data = {})
query = { query: values_to_json(data) } if data
request :get, resource, query
end
|
#post(resource, data) ⇒ Object
39
40
41
42
43
|
# File 'lib/dolly/connection.rb', line 39
def post resource, data
query_str = to_query(data.delete(:query)) if data[:query]
query = "?#{query_str}" if query_str
request :post, "#{resource.cgi_escape}#{query}", data
end
|
#put(resource, data) ⇒ Object
45
46
47
|
# File 'lib/dolly/connection.rb', line 45
def put resource, data
request :put, resource.cgi_escape, data
end
|
#request(method, resource, data = {}) ⇒ Object
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/dolly/connection.rb', line 75
def request(method, resource, data = {})
db_resource = (resource =~ %r{^/}) ? resource : "/#{db_name}/#{resource}"
= (data)
body = fetch_body(data)
uri = URI("#{base_uri}#{db_resource}")
conn = curl_method_call(method, uri, body) do |curl|
if env['username'] && !env['username'].empty?
curl.http_auth_types = :basic
curl.username = env['username']
curl.password = env['password'].to_s
end
.each { |k, v| curl.[k] = v } unless ! || .empty?
end
response_format(conn, method)
end
|
#skip_migrations? ⇒ Boolean
30
31
32
|
# File 'lib/dolly/connection.rb', line 30
def skip_migrations?
env['skip_migrations']
end
|
#stats ⇒ Object
67
68
69
|
# File 'lib/dolly/connection.rb', line 67
def stats
get("/#{db_name}")
end
|
71
72
73
|
# File 'lib/dolly/connection.rb', line 71
def tools path, opts = nil
request(:get, "/#{path}", opts)
end
|
#uuids(opts = {}) ⇒ Object
63
64
65
|
# File 'lib/dolly/connection.rb', line 63
def uuids opts = {}
tools("_uuids", opts)[:uuids]
end
|
#view(resource, opts) ⇒ Object
55
56
57
|
# File 'lib/dolly/connection.rb', line 55
def view resource, opts
request :get, resource, query: values_to_json({include_docs: true}.merge!(opts))
end
|