Module: LunaPark::Extensions::DataMapper

Included in:
Repository
Defined in:
lib/luna_park/extensions/data_mapper.rb

Overview

Examples:

class ProductRepository
  include LunaPark::Extensions::DataMapper

  entity Product
  mapper ProductMapper

  def find(id)
    read_one products.where(id: id)
  end

  def all
    read_all products
  end

  def save(input)
    entity = wrap(input)
    row    = to_row(entity)
    new_row   = products.where(id: entity.id).returning.update(row)
    new_attrs = from_row(new_row)
    entity.set_attributes(new_attrs)
    entity
  end

  private

  # Common dataset method is usefull for extensions
  def dataset
    SEQUEL_CONNECTION[:products]
  end

  alias products dataset
end

Defined Under Namespace

Modules: ClassMethods, InstanceMethods Classes: MoreThanOneRecord, NotFound

Class Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



42
43
44
# File 'lib/luna_park/extensions/data_mapper.rb', line 42

def extended(base)
  base.include self
end

.included(base) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/luna_park/extensions/data_mapper.rb', line 46

def included(base)
  base.extend ClassMethods
  base.include InstanceMethods

  base.__define_constants__

  defaults(base)
end