Class: CouchbaseOrm::N1qlProxy
- Inherits:
-
Object
- Object
- CouchbaseOrm::N1qlProxy
- Defined in:
- lib/couchbase-orm/proxies/n1ql_proxy.rb
Instance Method Summary collapse
-
#initialize(proxyfied) ⇒ N1qlProxy
constructor
A new instance of N1qlProxy.
- #method_missing(m, *args, &block) ⇒ Object
Constructor Details
#initialize(proxyfied) ⇒ N1qlProxy
Returns a new instance of N1qlProxy.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/couchbase-orm/proxies/n1ql_proxy.rb', line 8 def initialize(proxyfied) @proxyfied = proxyfied self.class.define_method(:results) do |*_params, &block| @results = nil if @current_query != self.to_s @current_query = self.to_s return @results if @results CouchbaseOrm.logger.debug { 'Query - ' + self.to_s } results = @proxyfied.rows results = results.map { |r| block.call(r) } if block @results = ResultsProxy.new(results.to_a) end self.class.define_method(:to_s) do @proxyfied.to_s.tr("\n", ' ') end proxyfied.public_methods.each do |method| next if self.public_methods.include?(method) self.class.define_method(method) do |*params, &block| ret = @proxyfied.send(method, *params, &block) ret.is_a?(@proxyfied.class) ? self : ret end end end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args, &block) ⇒ Object
37 38 39 |
# File 'lib/couchbase-orm/proxies/n1ql_proxy.rb', line 37 def method_missing(m, *args, &block) self.results.send(m, *args, &block) end |