Module: Exegesis::Database::Singleton

Includes:
Designs, Documents, InstanceMethods
Defined in:
lib/exegesis/database/singleton.rb

Instance Method Summary collapse

Methods included from Documents

#document

Methods included from Designs

#design, #designs_directory

Methods included from InstanceMethods

#initialize, #to_s

Methods included from Rest

#delete, #get, #post, #put, #raw_get, #save

Instance Method Details

#serverObject



31
32
33
# File 'lib/exegesis/database/singleton.rb', line 31

def server
  @server
end

#uri(addr = nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/exegesis/database/singleton.rb', line 9

def uri(addr=nil)
  if addr
    if addr.match(Exegesis::Database::URI_PATTERN)
      @server   = Exegesis::Server.new($1)
      @uri      = "#{@server.uri}/#{$2}"
    elsif addr.match(Exegesis::Database::NAME_PATTERN)
      @server   = Exegesis::Server.new
      @uri      = "#{@server.uri}/#{addr}"
    else
      raise ArgumentError, "does not match a valid database name/uri pattern"
    end
    begin
      @server.get @uri
    rescue RestClient::ResourceNotFound
      @server.put @uri
    end
    @uri
  else
    @uri || uri(Exegesis.nameify(name))
  end
end