Module: Exegesis::Database::Singleton
Instance Method Summary
collapse
Methods included from Documents
#document
Methods included from Designs
#design, #designs_directory
#initialize, #to_s
Methods included from Rest
#delete, #get, #post, #put, #raw_get, #save
Instance Method Details
#server ⇒ Object
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
|