module ROM::DataProxy::ClassMethods

Public Instance Methods

forward(*methods) click to toggle source

Forward provided methods to the underlaying data object

@example

class MyDataset
  include DataProxy

  forward(:find_all, :map)
end

@return [undefined]

@api public

# File lib/rom/data_proxy.rb, line 76
      def forward(*methods)
        # FIXME: we should probably raise if one of the non-forwardable methods
        #       was provided
        (methods - NON_FORWARDABLE).each do |method_name|
          class_eval <<-RUBY, __FILE__, __LINE__ + 1
            def #{method_name}(*args, &block)
              response = data.public_send(#{method_name.inspect}, *args, &block)

              if response.equal?(data)
                self
              elsif response.is_a?(data.class)
                self.class.new(response)
              else
                response
              end
            end
          RUBY
        end
      end
row_proc() click to toggle source

Default no-op tuple proc

@return [Proc]

@api private

# File lib/rom/data_proxy.rb, line 59
def row_proc
  -> tuple { tuple }
end