Class: Couchbase::Bucket
- Inherits:
-
Object
- Object
- Couchbase::Bucket
- Defined in:
- lib/couchbase/bucket.rb,
lib/couchbase/view_options.rb
Overview
Provides access to a Couchbase bucket APIs
Defined Under Namespace
Classes: ViewMetaData, ViewResult, ViewRow
Constant Summary collapse
- PingOptions =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
TODO: deprecate in 3.1
::Couchbase::Options::Ping
- ViewOptions =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
TODO: deprecate in 3.1
::Couchbase::Options::View
Instance Attribute Summary collapse
-
#name ⇒ String
readonly
Name of the bucket.
Instance Method Summary collapse
-
#collection(collection_name) ⇒ Collection
Opens the named collection in the default scope of the bucket.
- #collections ⇒ Management::CollectionManager
-
#default_collection ⇒ Collection
Opens the default collection for this bucket.
-
#default_scope ⇒ Scope
Get default scope.
-
#initialize(backend, name) ⇒ Bucket
constructor
A new instance of Bucket.
-
#ping(options = Options::Ping::DEFAULT) ⇒ PingResult
Performs application-level ping requests against services in the couchbase cluster.
-
#scope(scope_name) ⇒ Scope
Get a named scope.
- #view_indexes ⇒ Management::ViewIndexManager
-
#view_query(design_document_name, view_name, options = Options::View::DEFAULT) ⇒ ViewResult
Performs query to view index.
Constructor Details
#initialize(backend, name) ⇒ Bucket
Returns a new instance of Bucket.
33 34 35 36 37 |
# File 'lib/couchbase/bucket.rb', line 33 def initialize(backend, name) backend.open_bucket(name, true) @backend = backend @name = name end |
Instance Attribute Details
#name ⇒ String (readonly)
Returns name of the bucket.
28 29 30 |
# File 'lib/couchbase/bucket.rb', line 28 def name @name end |
Instance Method Details
#collection(collection_name) ⇒ Collection
Opens the named collection in the default scope of the bucket
60 61 62 |
# File 'lib/couchbase/bucket.rb', line 60 def collection(collection_name) default_scope.collection(collection_name) end |
#collections ⇒ Management::CollectionManager
103 104 105 |
# File 'lib/couchbase/bucket.rb', line 103 def collections Management::CollectionManager.new(@backend, @name) end |
#default_collection ⇒ Collection
Opens the default collection for this bucket
67 68 69 |
# File 'lib/couchbase/bucket.rb', line 67 def default_collection Collection.new(@backend, @name, "_default", "_default") end |
#default_scope ⇒ Scope
Get default scope
42 43 44 |
# File 'lib/couchbase/bucket.rb', line 42 def default_scope Scope.new(@backend, @name, "_default") end |
#ping(options = Options::Ping::DEFAULT) ⇒ PingResult
Performs application-level ping requests against services in the couchbase cluster
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/couchbase/bucket.rb', line 117 def ping( = Options::Ping::DEFAULT) resp = @backend.ping(@name, .to_backend) PingResult.new do |res| res.version = resp[:version] res.id = resp[:id] res.sdk = resp[:sdk] resp[:services].each do |type, svcs| res.services[type] = svcs.map do |svc| PingResult::ServiceInfo.new do |info| info.id = svc[:id] info.state = svc[:state] info.latency = svc[:latency] info.remote = svc[:remote] info.local = svc[:local] info.error = svc[:error] end end end end end |
#scope(scope_name) ⇒ Scope
Get a named scope
51 52 53 |
# File 'lib/couchbase/bucket.rb', line 51 def scope(scope_name) Scope.new(@backend, @name, scope_name) end |
#view_indexes ⇒ Management::ViewIndexManager
108 109 110 |
# File 'lib/couchbase/bucket.rb', line 108 def view_indexes Management::ViewIndexManager.new(@backend, @name) end |
#view_query(design_document_name, view_name, options = Options::View::DEFAULT) ⇒ ViewResult
Performs query to view index.
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/couchbase/bucket.rb', line 85 def view_query(design_document_name, view_name, = Options::View::DEFAULT) resp = @backend.document_view(@name, design_document_name, view_name, .namespace, .to_backend) ViewResult.new do |res| res. = ViewMetaData.new do || .total_rows = resp[:meta][:total_rows] .debug_info = resp[:meta][:debug_info] end res.rows = resp[:rows].map do |entry| ViewRow.new do |row| row.id = entry[:id] if entry.key?(:id) row.key = JSON.parse(entry[:key]) row.value = JSON.parse(entry[:value]) end end end end |