Skip to content

Instantly share code, notes, and snippets.

View flash-gordon's full-sized avatar
🔪
Working on sharp tools

Nikita Shilnikov flash-gordon

🔪
Working on sharp tools
View GitHub Profile
module Entities
class User < ROM::Struct
def name
[first_name, last_name].join(' ')
end
end
end
class Users < ROM::Relation[:sql]
schema do
@flash-gordon
flash-gordon / rom_reading_aggregates.rb
Created July 4, 2017 16:42 — forked from Kukunin/rom_reading_aggregates.rb
Example of reading aggregates in rom-rb
begin
require 'bundler/inline'
rescue LoadError => e
$stderr.puts 'Bundler version 1.10 or later is required.'
raise e
end
gemfile(true) do
source 'https://rubygems.org'
gem 'rom'
require "benchmark/ips"
def foo(seq, kw)
end
def fast
kw = { a: 1, b: 2, c: 3 }
foo(1, kw)
end
require 'rom'
require 'rom-repository'
require 'sqlite3'
rom = ROM.container(:sql, 'sqlite::memory') do |conf|
conf.default.create_table(:bookings) do
primary_key :booking_id
end
conf.default.create_table(:tickets) do
class Jobs < ROM::Relation[:sql]
schema(:jobs) do
# ...
associations do
belongs_to :team
belongs_to :template
belongs_to :address
belongs_to :client
end
users:
- name: 'Jane'
email: 'jane@doe.org'
- name: 'John'
email: 'john@acme.com'
require 'rom'
require 'rom-sql'
DB = Sequel.connect('postgres://localhost/rom_sql')
DB.execute('create extension if not exists hstore ')
DB.drop_table?(:strings)
DB.create_table(:strings) do
primary_key(:id)
hstore :value
require 'rom-sql'
require 'rom-repository'
rom = ROM.container(:sql, 'sqlite::memory') do |c|
c.gateways[:default].create_table :events do
primary_key :id
column :event_no, Integer
end
c.gateways[:default].create_table :orders do
#!/usr/bin/env ruby
require "bundler/setup"
require "rom-repository"
config = ROM::Configuration.new(:sql, 'postgres://localhost/rom_repository')
config.relation(:books) do
schema(:books) do
attribute :id, ROM::SQL::Types::Serial
#!/usr/bin/env ruby
require "bundler/setup"
require "rom-repository"
config = ROM::Configuration.new(:sql, 'postgres://localhost/rom_repository')
config.relation(:books) do
schema(:books) do
attribute :id, ROM::SQL::Types::Serial