Class: Aqua::Store::CouchDB::Server

Server

Attributes

Instance Attributes

namespace [R] public

Returns the value of attribute namespace.

uri [RW] public

Sets the attribute uri.

uuid_batch_count [RW] public

Sets the attribute uuid_batch_count.

uuids [RW] public

Sets the attribute uuids.

Constructor Summary

public initialize(opts = {})
[View source]


11
12
13
14
15
16
# File 'lib/aqua/store/couch_db/server.rb', line 11

def initialize(opts={})
  opts = Mash.new(opts) unless opts.empty?
  self.uri =              opts[:server] || 'http://127.0.0.1:5984'
  self.uuid_batch_count = opts[:uuid_batch_count] || 1000 
  self.namespace =        opts[:namespace].to_s 
end

Public Visibility

Public Instance Method Summary

#database(name)

Returns a CouchRest::Database for the given name.

#database!(name)

Creates the database if it doesn’t exist.

#database_names

DATABASE MANAGMENT ----------— Lists all database names on the server.

#databases
#delete_all

Deletes all database with the less exection raising method: database.

#delete_all!

Deletes all databases named for this namespace (i.

#info

GET the welcome message.

#load_uuids(count = @uuid_batch_count)
#namespace=(name)
#next_uuid(count = @uuid_batch_count)

Retrive an unused UUID from CouchDB.

#restart!

Restart the CouchDB instance.

#uuid_count

counts the number of uuids available, used by Database to limit bulk save.

Public Instance Method Details

database

public database(name)

Returns a CouchRest::Database for the given name

[View source]


56
57
58
59
# File 'lib/aqua/store/couch_db/server.rb', line 56

def database(name)
  db = Database.new( name, :server => self )
  db.exists? ? db : nil
end

database!

public database!(name)

Creates the database if it doesn’t exist

[View source]


62
63
64
# File 'lib/aqua/store/couch_db/server.rb', line 62

def database!(name)
  Database.create( name, :server => self )  
end

database_names

public database_names

DATABASE MANAGMENT ----------— Lists all database names on the server

[View source]


29
30
31
32
# File 'lib/aqua/store/couch_db/server.rb', line 29

def database_names
  dbs = CouchDB.get( "#{@uri}/_all_dbs" )
  dbs.select{|name| name.match(/\A#{namespace}_?/)}
end

databases

public databases
[View source]


34
35
36
37
38
39
40
# File 'lib/aqua/store/couch_db/server.rb', line 34

def databases
  dbs = [] 
  database_names.each do |db_name|
    dbs << Database.new( db_name.gsub(/\A#{namespace}_|\A#{namespace}\z/, '') , :server => self )
  end
  dbs  
end

delete_all

public delete_all

Deletes all database with the less exection raising method: database.delete. This will only raise errors related to request problems, and not errors related to the database not being found for deletion.

[View source]


51
52
53
# File 'lib/aqua/store/couch_db/server.rb', line 51

def delete_all 
  databases.each{ |db| db.delete }
end

delete_all!

public delete_all!

Deletes all databases named for this namespace (i.e. this server) Use with caution … it is a permanent and undoable change

[View source]


44
45
46
# File 'lib/aqua/store/couch_db/server.rb', line 44

def delete_all! 
  databases.each{ |db| db.delete! }
end

info

public info

GET the welcome message

[View source]


67
68
69
# File 'lib/aqua/store/couch_db/server.rb', line 67

def info
  CouchDB.get "#{uri}/"
end

load_uuids

public load_uuids(count = @uuid_batch_count)
[View source]


95
96
97
# File 'lib/aqua/store/couch_db/server.rb', line 95

def load_uuids( count=@uuid_batch_count ) 
  @uuids = CouchDB.get("#{@uri}/_uuids?count=#{count}")["uuids"]
end

namespace=

public namespace=(name)
[View source]


18
19
20
21
22
23
24
# File 'lib/aqua/store/couch_db/server.rb', line 18

def namespace=( name )
  default = 'aqua'
  name ||= default
  name = CouchDB.escape( name )
  name = default if name.empty? 
  @namespace = name
end

next_uuid

public next_uuid(count = @uuid_batch_count)

Retrive an unused UUID from CouchDB. Server instances manage caching a list of unused UUIDs.

[View source]


87
88
89
90
91
92
93
# File 'lib/aqua/store/couch_db/server.rb', line 87

def next_uuid(count = @uuid_batch_count)
  @uuids ||= []
  if uuids.empty?
    load_uuids(count)
  end
  uuids.pop
end

restart!

public restart!

Restart the CouchDB instance

[View source]


72
73
74
# File 'lib/aqua/store/couch_db/server.rb', line 72

def restart!
  CouchDB.post "#{uri}/_restart"
end

uuid_count

public uuid_count

counts the number of uuids available, used by Database to limit bulk save

[View source]


77
78
79
80
81
82
83
84
# File 'lib/aqua/store/couch_db/server.rb', line 77

def uuid_count
  if uuids 
    uuids.size 
  else
    load_uuids  
    uuid_batch_count
  end  
end
Generated on Friday, August 21 2009 at 12:48:48 PM by YARD 0.2.3.5 (ruby-1.8.6).