Sha256: 16f6cec61b3dfd7a243d1e6e862fc756e4726bbb4f6e21d278a0485fb8949d3a

Contents?: true

Size: 714 Bytes

Versions: 5

Compression:

Stored size: 714 Bytes

Contents

# frozen_string_literal: true, encoding: ASCII-8BIT

module CouchbaseOrm
    class ResultsProxy
        def initialize(proxyfied)
            @proxyfied = proxyfied
            
            raise ArgumentError, "Proxyfied object must respond to :to_a" unless @proxyfied.respond_to?(:to_a)

            proxyfied.public_methods.each do |method|
                next if self.public_methods.include?(method)

                self.class.define_method(method) do |*params, &block|
                    @proxyfied.send(method, *params, &block)
                end
            end
        end
        
        def method_missing(m, *args, &block)
            @proxyfied.to_a.send(m, *args, &block)
        end
    end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
couchbase-orm-2.0.4 lib/couchbase-orm/proxies/results_proxy.rb
couchbase-orm-2.0.3 lib/couchbase-orm/proxies/results_proxy.rb
couchbase-orm-2.0.2 lib/couchbase-orm/proxies/results_proxy.rb
couchbase-orm-2.0.1 lib/couchbase-orm/proxies/results_proxy.rb
couchbase-orm-2.0.0 lib/couchbase-orm/proxies/results_proxy.rb