Class: Couchup::Couchup

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

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.hostObject

Returns the value of attribute host.



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

def host
  @host
end

.last_resultObject

Returns the value of attribute last_result.



5
6
7
# File 'lib/couchup/couchup.rb', line 5

def last_result
  @last_result
end

.passwordObject

Returns the value of attribute password.



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

def password
  @password
end

.portObject

Returns the value of attribute port.



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

def port
  @port
end

.userObject

Returns the value of attribute user.



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

def user
  @user
end

Class Method Details

.all(options = {}) ⇒ Object



73
74
75
# File 'lib/couchup/couchup.rb', line 73

def all(options={})
  @db.documents(options.merge(:include_docs => true))["rows"]
end

.databaseObject



28
29
30
# File 'lib/couchup/couchup.rb', line 28

def database
  @db
end

.database=(database) ⇒ Object



11
12
13
# File 'lib/couchup/couchup.rb', line 11

def database=(database)
  @db  = database.nil? ? nil : CouchRest.database!(host_string(database))
end

.databasesObject



84
85
86
# File 'lib/couchup/couchup.rb', line 84

def databases
  server.databases
end

.debug=(value) ⇒ Object



77
78
79
# File 'lib/couchup/couchup.rb', line 77

def debug=(value)
  @debug = value
end

.debug?Boolean

Returns:

  • (Boolean)


80
81
82
# File 'lib/couchup/couchup.rb', line 80

def debug?
  @debug == true
end

.delete_all_docs(view_name) ⇒ Object



50
51
52
53
54
55
# File 'lib/couchup/couchup.rb', line 50

def delete_all_docs(view_name)
  all_docs = view_name.nil? ? all : MapReduce.map(view_name)
  all_docs.collect{|d| d["doc"]}.each do |doc|
    database.delete_doc(doc) unless (doc["_id"] =~ /^_design/)
  end
end

.delete_doc(id) ⇒ Object



45
46
47
48
# File 'lib/couchup/couchup.rb', line 45

def delete_doc(id)
  doc = database.get(id)
  database.delete_doc(doc)
end

.get(id) ⇒ Object



69
70
71
# File 'lib/couchup/couchup.rb', line 69

def get(id)
  @db.get(id)
end

.host_string(database = nil) ⇒ Object



16
17
18
19
# File 'lib/couchup/couchup.rb', line 16

def host_string(database=nil)
  base_string = using_auth? ? "#{user}:#{password}@#{host}:#{port}" : "#{host}:#{port}"
  database.blank? ? "http://#{base_string}"  : "http://#{base_string}/#{database}"
end

.new_database(db) ⇒ Object



24
25
26
# File 'lib/couchup/couchup.rb', line 24

def new_database(db)
  CouchRest.database!(host_string(db))
end

.ready?Boolean

Returns:

  • (Boolean)


57
58
59
60
61
62
63
64
65
66
67
# File 'lib/couchup/couchup.rb', line 57

def ready?
  uuid = nil
  begin
    ap (info = server.info)
  rescue
    ap $!.inspect
    ap $!.backtrace if debug?
    
  end
  !info.nil?
end

.serverObject



7
8
9
# File 'lib/couchup/couchup.rb', line 7

def server
  @server ||= CouchRest::Server.new(host_string)
end

.using_auth?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/couchup/couchup.rb', line 20

def using_auth?
  !user.blank?
end

.views(design = nil) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/couchup/couchup.rb', line 33

def views(design = nil)
  params = design.nil? ? {:startkey => '_design', :endkey => '_design0'} : {:key => "_design\\#{design}"}
  designs = database.documents(params.merge(:include_docs => true))["rows"]
  designs.collect do |d|
    d["doc"]["views"].keys.collect do |view| 
      map = !d["doc"]["views"][view]["map"].blank?
      reduce = !d["doc"]["views"][view]["reduce"].blank?
      {"#{d['key'].gsub('_design/','')}/#{view}"  => {:reduce => reduce, :map => map}}
    end
  end.flatten
end