@ilavriv
Ruby object mapper, toolkit for data manipulation
Using: Setup
ROM.setup(
default: [:sql, 'sqlite::memory'],
other: [:csv, '/path/to/files', {
encoding: 'utf-8',
col_sep: ';'
}]
)Using: Relations
class BooksRelation < ROM::Relation[:sql]
include ROM::SQL::Plugin::Pagination
dataset :books
per_page 30
def ordered
order(:id)
end
endUsing: Commands
class CreateBook < ROM::Commands::Create[:sql]
relation :users
register_as :create
endUsing: Mappers
class UserAsEntity < ROM::Mapper
register_as :entity
relation :users
model User
endUsing: Repositories
class BookRepository < ROM::Repository::Base
relations :book
def new_books(timestamp)
users.listing.added_after(timestamp)
end
endlinks