Module: ROM::EnumerableDataset

Extended by:
DataProxy::ClassMethods
Includes:
Enumerable
Included in:
ArrayDataset
Defined in:
lib/rom/support/enumerable_dataset.rb

Overview

A helper module that adds data-proxy behavior to an enumerable object

This module is intended to be used by gateways

Class that includes this module can define ‘row_proc` class method which must return a proc-like object which will be used to process each element in the enumerable

Examples:

class MyDataset
  include ROM::EnumerableDataset

  def self.row_proc
    -> tuple { tuple.each_with_object({}) { |(k,v), h| h[k.to_sym] = v } }
  end
end

ds = MyDataset.new([{ 'name' => 'Jane' }, [:name])
ds.to_a # => { :name => 'Jane' }

Class Method Summary collapse

Methods included from DataProxy::ClassMethods

forward, row_proc

Class Method Details

.included(klass) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Included hook which extends a class with DataProxy behavior

This module can also be included into other modules so we apply the extension only for classes



42
43
44
45
46
47
48
49
# File 'lib/rom/support/enumerable_dataset.rb', line 42

def self.included(klass)
  return unless klass.is_a?(Class)

  klass.class_eval do
    include Options
    include DataProxy
  end
end