viernes, 14 de abril de 2017

Sequel, un orm para Ruby

Sequel es un ORM para ruby, con todas las ventajas de un ORM y las ventajas que da un lenguaje como Ruby.

  • Sequel proporciona seguridad de subprocesos, agrupación de conexiones y un DSL conciso para la construcción de consultas SQL y esquemas de tabla.
  • Sequel incluye una capa completa de ORM para mapeos de tablas a objetos Ruby.
  • Sequel es compatible con funciones de base de datos avanzadas como sentencias, variables enlazadas, procedimientos almacenados, confirmación de dos fases, aislamiento de transacciones y fragmentación de bases de datos.
  • Actualmente, Sequel tiene adaptadores para ADO, Amalgalite, IBM_DB, JDBC, MySQL, Mysql2, ODBC, Oracle, PostgreSQL, SQLAnywhere, SQLite3 y TinyTDS.
Veamos un ejemplo de creación de tabla y inserción: 


require "rubygems"
require "sequel"

# connect to an in-memory database
DB = Sequel.sqlite

# create an items table
DB.create_table :items do
  primary_key :id
  String :name
  Float :price
end

# create a dataset from the items table
items = DB[:items]

# populate the table
items.insert(:name => 'abc', :price => rand * 100)
items.insert(:name => 'def', :price => rand * 100)
items.insert(:name => 'ghi', :price => rand * 100)

# print out the number of records
puts "Item count: #{items.count}"

# print out the average price
puts "The average price is: #{items.avg(:price)}"