Class: Libcouchbase::N1QL
- Inherits:
-
Object
- Object
- Libcouchbase::N1QL
- Defined in:
- lib/libcouchbase/n1ql.rb
Constant Summary collapse
- Ordering =
[:select, :insert_into, :delete_from, :update, :from, :use_keys, :unnest, :join, :where, :group_by, :order_by, :limit, :offset]
Instance Attribute Summary collapse
-
#bucket ⇒ Object
readonly
Returns the value of attribute bucket.
-
#connection ⇒ Object
readonly
Returns the value of attribute connection.
-
#explain(val = nil) ⇒ Object
Returns the value of attribute explain.
Instance Method Summary collapse
-
#initialize(bucket, explain: false, **options) ⇒ N1QL
constructor
A new instance of N1QL.
- #results(&row_modifier) ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(bucket, explain: false, **options) ⇒ N1QL
Returns a new instance of N1QL.
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/libcouchbase/n1ql.rb', line 7 def initialize(bucket, explain: false, **) @bucket = bucket @connection = bucket.connection @explain = !!explain .each do |key, value| if self.respond_to? key self.public_send key, value end end end |
Instance Attribute Details
#bucket ⇒ Object (readonly)
Returns the value of attribute bucket.
20 21 22 |
# File 'lib/libcouchbase/n1ql.rb', line 20 def bucket @bucket end |
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
20 21 22 |
# File 'lib/libcouchbase/n1ql.rb', line 20 def connection @connection end |
#explain(val = nil) ⇒ Object
Returns the value of attribute explain.
19 20 21 |
# File 'lib/libcouchbase/n1ql.rb', line 19 def explain @explain end |
Instance Method Details
#results(&row_modifier) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/libcouchbase/n1ql.rb', line 60 def results(&row_modifier) n1ql_view = @connection.n1ql_query(self) current = ::Libuv::Reactor.current if current && current.running? ResultsLibuv.new(n1ql_view, current, &row_modifier) elsif Object.const_defined?(:EventMachine) && EM.reactor_thread? ResultsEM.new(n1ql_view, &row_modifier) else ResultsNative.new(n1ql_view, &row_modifier) end end |
#to_s ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/libcouchbase/n1ql.rb', line 40 def to_s res = String.new res << "EXPLAIN\n" if @explain Ordering.each do |statement| val = public_send statement unless val.nil? res << "#{statement.to_s.gsub('_', ' ').upcase} " if val.is_a? Array res << val.collect { |obj| obj.to_s }.join(', ') else res << val.to_s end res << "\n" end end res end |