Class: Cloudant::Connection

Inherits:
Object
  • Object
show all
Defined in:
lib/cloudant/connection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ Connection

Returns a new instance of Connection.



6
7
8
9
10
# File 'lib/cloudant/connection.rb', line 6

def initialize(args)
  @username = args[:username]
  @password = args[:password]
  @base_uri = args[:base_uri]
end

Instance Attribute Details

#base_uriObject (readonly)

Returns the value of attribute base_uri.



4
5
6
# File 'lib/cloudant/connection.rb', line 4

def base_uri
  @base_uri
end

#cookiesObject

Returns the value of attribute cookies.



3
4
5
# File 'lib/cloudant/connection.rb', line 3

def cookies
  @cookies
end

#passwordObject (readonly)

Returns the value of attribute password.



4
5
6
# File 'lib/cloudant/connection.rb', line 4

def password
  @password
end

#usernameObject (readonly)

Returns the value of attribute username.



4
5
6
# File 'lib/cloudant/connection.rb', line 4

def username
  @username
end

Instance Method Details

#closeObject



32
33
34
# File 'lib/cloudant/connection.rb', line 32

def close
  query({url_path: "_session", method: :delete})
end


27
28
29
30
# File 'lib/cloudant/connection.rb', line 27

def cookie_auth
  response = start_session
  @cookies = get_cookies(response)
end

#query(args) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/cloudant/connection.rb', line 12

def query(args)
  base     = URI.parse("#{base_uri}#{args[:url_path]}")
  http     = Net::HTTP.new(base.host, 80)
  request  = new_net_http_crud(args[:method],base)
  
  args[:opts] ? opts = args[:opts] : opts = { "Cookie" => cookies }

  request.body            = JSON.generate(opts)
  request['Cookie']       = cookies
  request["Content-Type"] = "application/json"
  response                = http.request(request)

  JSON.parse(response.body)    
end