Class: Couchbase::Bucket
- Inherits:
-
Object
- Object
- Couchbase::Bucket
- Defined in:
- lib/couchbase/bucket.rb,
lib/couchbase/view_options.rb,
/Users/sergey.auseyau/code/couchbase-ruby-client/lib/couchbase/bucket.rb,
/Users/sergey.auseyau/code/couchbase-ruby-client/lib/couchbase/view_options.rb more...
Defined Under Namespace
Classes: ViewMetaData, ViewResult, ViewRow
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.new) ⇒ 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.new) ⇒ ViewResult
Performs query to view index.
Constructor Details
#initialize(backend, name) ⇒ Bucket
Returns a new instance of Bucket.
30 31 32 33 34 |
# File 'lib/couchbase/bucket.rb', line 30 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.
25 26 27 |
# File 'lib/couchbase/bucket.rb', line 25 def name @name end |
Instance Method Details
#collection(collection_name) ⇒ Collection
Opens the named collection in the default scope of the bucket
57 58 59 |
# File 'lib/couchbase/bucket.rb', line 57 def collection(collection_name) default_scope.collection(collection_name) end |
#collections ⇒ Management::CollectionManager
100 101 102 |
# File 'lib/couchbase/bucket.rb', line 100 def collections Management::CollectionManager.new(@backend, @name) end |
#default_collection ⇒ Collection
Opens the default collection for this bucket
64 65 66 |
# File 'lib/couchbase/bucket.rb', line 64 def default_collection Collection.new(@backend, @name, :_default, :_default) end |
#default_scope ⇒ Scope
Get default scope
39 40 41 |
# File 'lib/couchbase/bucket.rb', line 39 def default_scope Scope.new(@backend, @name, :_default) end |
#ping(options = Options::Ping.new) ⇒ PingResult
Performs application-level ping requests against services in the couchbase cluster
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/couchbase/bucket.rb', line 114 def ping( = Options::Ping.new) 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
48 49 50 |
# File 'lib/couchbase/bucket.rb', line 48 def scope(scope_name) Scope.new(@backend, @name, scope_name) end |
#view_indexes ⇒ Management::ViewIndexManager
105 106 107 |
# File 'lib/couchbase/bucket.rb', line 105 def view_indexes Management::ViewIndexManager.new(@backend, @name) end |
#view_query(design_document_name, view_name, options = Options::View.new) ⇒ ViewResult
Performs query to view index.
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/couchbase/bucket.rb', line 82 def view_query(design_document_name, view_name, = Options::View.new) 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 |