Module: CloudDB
- Defined in:
- lib/clouddb.rb,
lib/clouddb/user.rb,
lib/clouddb/flavor.rb,
lib/clouddb/version.rb,
lib/clouddb/database.rb,
lib/clouddb/instance.rb,
lib/clouddb/exception.rb,
lib/clouddb/connection.rb,
lib/clouddb/authentication.rb
Overview
Cloud Databases API
Connects Ruby Applications to Rackspace’s Cloud Databases service
By Jorge Miramontes <[email protected]> and H. Wade Minter <[email protected]>
See COPYING for license information. Copyright © 2012, Rackspace US, Inc.
Documentation & Examples
To begin reviewing the available methods and examples, peruse the README.rodc file, or begin by looking at documentation for the CloudDB::Connection class.
The CloudDB class is the base class. Not much of note aside from housekeeping happens here. To create a new CloudDB connection, use the CloudDB::Connection.new method.
Defined Under Namespace
Classes: Authentication, Connection, Database, Exception, Flavor, Instance, User
Constant Summary collapse
- AUTH_USA =
"https://auth.api.rackspacecloud.com/v1.0"
- AUTH_UK =
"https://lon.auth.api.rackspacecloud.com/v1.0"
- VERSION =
'0.0.1'
Class Method Summary collapse
-
.escape(str, extra_exclude_chars = '') ⇒ Object
CGI.escape, but without special treatment on spaces.
- .hydra ⇒ Object
- .paginate(options = {}) ⇒ Object
-
.symbolize_keys(obj) ⇒ Object
Helper method to recursively symbolize hash keys.
Class Method Details
.escape(str, extra_exclude_chars = '') ⇒ Object
CGI.escape, but without special treatment on spaces
84 85 86 87 88 |
# File 'lib/clouddb.rb', line 84 def self.escape(str,extra_exclude_chars = '') str.gsub(/([^a-zA-Z0-9_.-#{extra_exclude_chars}]+)/) do '%' + $1.unpack('H2' * $1.bytesize).join('%').upcase end end |
.hydra ⇒ Object
79 80 81 |
# File 'lib/clouddb.rb', line 79 def self.hydra @@hydra ||= Typhoeus::Hydra.new end |
.paginate(options = {}) ⇒ Object
90 91 92 93 94 95 |
# File 'lib/clouddb.rb', line 90 def self.paginate( = {}) path_args = [] path_args.push(URI.encode("limit=#{[:limit]}")) if [:limit] path_args.push(URI.encode("offset=#{[:offset]}")) if [:offset] path_args.join("&") end |
.symbolize_keys(obj) ⇒ Object
Helper method to recursively symbolize hash keys.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/clouddb.rb', line 45 def self.symbolize_keys(obj) case obj when Array obj.inject([]){|res, val| res << case val when Hash, Array symbolize_keys(val) else val end res } when Hash obj.inject({}){|res, (key, val)| nkey = case key when String key.to_sym else key end nval = case val when Hash, Array symbolize_keys(val) else val end res[nkey] = nval res } else obj end end |