Class: LooseChange::Database

Inherits:
Object
  • Object
show all
Extended by:
Helpers
Includes:
Helpers
Defined in:
lib/loose_change/database.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Helpers

default_headers, design_document_uri

Constructor Details

#initialize(name, server) ⇒ Database

Build a new LooseChange::Database instance with a database named name. The server is a URI string identifying the CouchDB server and port. If the database does not exist on the server, it will be created.



14
15
16
17
18
19
# File 'lib/loose_change/database.rb', line 14

def initialize(name, server)
  @name = name
  @server = server
  @uri  = "/#{name.gsub('/','%2F')}"
  create_database_unless_exists
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



8
9
10
# File 'lib/loose_change/database.rb', line 8

def name
  @name
end

#serverObject (readonly)

Returns the value of attribute server.



8
9
10
# File 'lib/loose_change/database.rb', line 8

def server
  @server
end

Class Method Details

.delete(name, server = "http://127.0.0.1:5984") ⇒ Object

Delete the database named name on the server server.



26
27
28
29
30
31
# File 'lib/loose_change/database.rb', line 26

def self.delete(name, server = "http://127.0.0.1:5984")
  begin
    RestClient.delete("#{ server }/#{ name }")
  rescue RestClient::ResourceNotFound
  end
end

.setup_design(database, model_name) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/loose_change/database.rb', line 33

def self.setup_design(database, model_name)
  begin
    RestClient.get("#{ database.uri }/_design/#{ CGI.escape(model_name) }")
  rescue
    RestClient.put("#{ database.uri }/_design/#{ CGI.escape(model_name) }",
                   { '_id' => "_design/#{ CGI.escape(model_name) }",
                     'language' => 'javascript'}.to_json, default_headers)
  end
end

Instance Method Details

#uriObject



21
22
23
# File 'lib/loose_change/database.rb', line 21

def uri
  server.uri + @uri
end