Module: Cushion
- Defined in:
- lib/cushion.rb,
lib/cushion/design.rb,
lib/cushion/server.rb,
lib/cushion/database.rb,
lib/cushion/document.rb
Defined Under Namespace
Modules: Meta Classes: Database, Design, Document, Server
Constant Summary collapse
- VERSION =
'0.6.0'
Class Method Summary collapse
- .base64(data) ⇒ Object
-
.db(url) ⇒ Object
(also: database)
Returns a Cushion::Database instance rooted at
url. -
.db!(url) ⇒ Object
(also: database!)
Creates a database at
urlif it does not exist. -
.encode_attachments(attachments) ⇒ Object
Base64 encodes inline attachments.
-
.escape_key(id, filename = nil) ⇒ Object
Handles key escaping.
-
.paramify_url(url, params = {}) ⇒ Object
Utility method for converting parameters into url query strings.
-
.proxy(url) ⇒ Object
Sets the RestClient proxy.
-
.recreate(url) ⇒ Object
Drops and recreates a database at
url, returning a Cushion::Database instance. -
.server(options = {}) ⇒ Object
(also: new)
Returns a Cushion::Server instance.
Class Method Details
.base64(data) ⇒ Object
90 91 92 |
# File 'lib/cushion.rb', line 90 def base64(data) Base64.encode64(data).gsub(/\s/,'') end |
.db(url) ⇒ Object Also known as: database
Returns a Cushion::Database instance rooted at url. Does not attempt to create the database on the server.
36 37 38 39 40 |
# File 'lib/cushion.rb', line 36 def db(url) parsed = parse(url) server = Cushion.new(:uri => parsed[:host]) server.db(parsed[:db]) end |
.db!(url) ⇒ Object Also known as: database!
Creates a database at url if it does not exist. Returns a Cushion::Database instance.
45 46 47 48 49 |
# File 'lib/cushion.rb', line 45 def db!(url) parsed = parse(url) server = Cushion.new(:uri => parsed[:host]) server.db!(parsed[:db]) end |
.encode_attachments(attachments) ⇒ Object
Base64 encodes inline attachments.
82 83 84 85 86 87 88 |
# File 'lib/cushion.rb', line 82 def () .each do |k,v| next if v['stub'] v['data'] = base64(v['data']) end end |
.escape_key(id, filename = nil) ⇒ Object
Handles key escaping.
73 74 75 76 77 78 79 |
# File 'lib/cushion.rb', line 73 def escape_key(id, filename = nil) if filename "#{escape_docid(id)}/#{CGI.escape(filename)}" else escape_docid(id) end end |
.paramify_url(url, params = {}) ⇒ Object
Utility method for converting parameters into url query strings.
61 62 63 64 65 66 67 68 69 70 |
# File 'lib/cushion.rb', line 61 def paramify_url(url, params = {}) if params && !params.empty? query = params.collect do |k,v| v = v.to_json if %w{key startkey endkey}.include?(k.to_s) "#{k}=#{CGI.escape(v.to_s)}" end.join("&") url = "#{url}?#{query}" end url end |
.proxy(url) ⇒ Object
Sets the RestClient proxy.
95 96 97 |
# File 'lib/cushion.rb', line 95 def proxy(url) RestClient.proxy = url end |
.recreate(url) ⇒ Object
Drops and recreates a database at url, returning a Cushion::Database instance.
54 55 56 57 58 |
# File 'lib/cushion.rb', line 54 def recreate(url) parsed = parse(url) server = Cushion.new(:uri => parsed[:host]) server.recreate(parsed[:db]) end |
.server(options = {}) ⇒ Object Also known as: new
Returns a Cushion::Server instance.
29 30 31 |
# File 'lib/cushion.rb', line 29 def server( = {}) Server.new() end |