Class: ROM::Repository::Root

Inherits:
ROM::Repository show all
Defined in:
lib/rom/repository/root.rb

Overview

A specialized repository type dedicated to work with a root relation

This repository type builds commands and aggregates for its root relation

Examples:

class UserRepo < ROM::Repository[:users]
  commands :create, update: :by_pk, delete: :by_pk
end

rom = ROM.container(:sql, 'sqlite::memory') do |conf|
  conf.default.create_table(:users) do
    primary_key :id
    column :name, String
  end
end

user_repo = UserRepo.new(rom)

user = user_repo.create(name: "Jane")

user_repo.update(user.id, name: "Jane Doe")

user_repo.delete(user.id)

Constant Summary

Constants inherited from ROM::Repository

VERSION

Instance Attribute Summary

Attributes inherited from ROM::Repository

#auto_struct, #container, #relations, #struct_namespace

Class Method Summary collapse

Methods inherited from ROM::Repository

auto_struct, #initialize, #inspect, relation_reader, #transaction

Methods included from ClassInterface

#[], #commands, #inherited, #new, #use

Constructor Details

This class inherits a constructor from ROM::Repository

Class Method Details

.inherited(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.

Sets descendant root relation


54
55
56
57
# File 'lib/rom/repository/root.rb', line 54

def self.inherited(klass)
  super
  klass.root(root)
end

.new(*args, **kwargs) ⇒ Object


47
48
49
# File 'lib/rom/repository/root.rb', line 47

def self.new(*args, **kwargs)
  super(*args, **kwargs, root: root)
end

.rootSymbol .root(identifier) ⇒ Symbol

Get or set repository root relation identifier

This method is automatically used when you define a class using MyRepo shortcut

Overloads:

  • .rootSymbol

    Return root relation identifier

    Returns:

    • (Symbol)
  • .root(identifier) ⇒ Symbol

    Set root relation identifier

    Returns:

    • (Symbol)

44
# File 'lib/rom/repository/root.rb', line 44

defines :root