Sha256: 7db469c4aaccd094a1aa8f0500d8f5b833f58e52fdf032fdacd189fd66f157be
Contents?: true
Size: 1.24 KB
Versions: 5
Compression:
Stored size: 1.24 KB
Contents
# frozen_string_literal: true, encoding: ASCII-8BIT require 'couchbase-orm/proxies/results_proxy' module CouchbaseOrm class N1qlProxy 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 def method_missing(m, *args, &block) self.results.send(m, *args, &block) end end end
Version data entries
5 entries across 5 versions & 1 rubygems