Class: Couchbase::Scope
- Inherits:
-
Object
- Object
- Couchbase::Scope
- Defined in:
- lib/couchbase/scope.rb,
/Users/sergey.auseyau/code/couchbase-ruby-client/lib/couchbase/scope.rb more...
Instance Attribute Summary collapse
-
#bucket_name ⇒ Object
readonly
Returns the value of attribute bucket_name.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
-
#collection(collection_name) ⇒ Collection
Opens the default collection for this scope.
-
#initialize(backend, bucket_name, scope_name) ⇒ Scope
constructor
A new instance of Scope.
-
#query(statement, options = Options::Query.new) ⇒ QueryResult
Performs a query against the query (N1QL) services.
Constructor Details
#initialize(backend, bucket_name, scope_name) ⇒ Scope
Returns a new instance of Scope.
28 29 30 31 32 |
# File 'lib/couchbase/scope.rb', line 28 def initialize(backend, bucket_name, scope_name) @backend = backend @bucket_name = bucket_name @name = scope_name end |
Instance Attribute Details
#bucket_name ⇒ Object (readonly)
Returns the value of attribute bucket_name.
20 21 22 |
# File 'lib/couchbase/scope.rb', line 20 def bucket_name @bucket_name end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
21 22 23 |
# File 'lib/couchbase/scope.rb', line 21 def name @name end |
Instance Method Details
#collection(collection_name) ⇒ Collection
Opens the default collection for this scope
39 40 41 |
# File 'lib/couchbase/scope.rb', line 39 def collection(collection_name) Collection.new(@backend, @bucket_name, @name, collection_name) end |
#query(statement, options = Options::Query.new) ⇒ QueryResult
Performs a query against the query (N1QL) services.
The query will be implicitly scoped using current bucket and scope names.
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/couchbase/scope.rb', line 58 def query(statement, = Options::Query.new) resp = @backend.document_query(statement, .to_backend(scope_name: @name, bucket_name: @bucket_name)) Cluster::QueryResult.new do |res| res. = Cluster::QueryMetaData.new do || .status = resp[:meta][:status] .request_id = resp[:meta][:request_id] .client_context_id = resp[:meta][:client_context_id] .signature = JSON.parse(resp[:meta][:signature]) if resp[:meta][:signature] .profile = JSON.parse(resp[:meta][:profile]) if resp[:meta][:profile] .metrics = Cluster::QueryMetrics.new do |metrics| if resp[:meta][:metrics] metrics.elapsed_time = resp[:meta][:metrics][:elapsed_time] metrics.execution_time = resp[:meta][:metrics][:execution_time] metrics.sort_count = resp[:meta][:metrics][:sort_count] metrics.result_count = resp[:meta][:metrics][:result_count] metrics.result_size = resp[:meta][:metrics][:result_size] metrics.mutation_count = resp[:meta][:metrics][:mutation_count] metrics.error_count = resp[:meta][:metrics][:error_count] metrics.warning_count = resp[:meta][:metrics][:warning_count] end end res[:warnings] = resp[:warnings].map { |warn| QueryWarning.new(warn[:code], warn[:message]) } if resp[:warnings] end res.instance_variable_set("@rows", resp[:rows]) end end |