From: Sharon Rosner Date: 2007-03-26T17:49:25+09:00 Subject: Sequel 0.0.9 - Concise ORM for Ruby Sequel is a new ORM tool for Ruby. Sequel provides the following features: * Thread safety and connection pooling. You can write multi-threaded applications that connect to databases without worrying about handling connections. * A concise, chainable query DSL lets you stay close to the metal without writing SQL. You don't have to define model classes. * Datasets support filtering, ordering, summarizing, and joining. * Records are fetched one at a time, so you can work with huge result sets. * Currently has adapters for Postgresql, SQLite and MySQL (preliminary support). * Model classes work in similar fashion to ActiveRecord (but are currently missing some functionality.) RDoc documentation is here: http://sequel.rubyforge.org The source code is here: http://ruby-sequel.googlecode.com/svn/trunk A Short Example: require 'sequel/sqlite' # open an in-memory SQLite database DB = Sequel.open 'sqlite:/:memory:' # create a table DB.create_table :items do primary_key :id, :integer, :auto_increment => true column :name, :text column :price, :float end # popuplate table 100.times {DB[:items] << {:name => "product#{rand(1000)}", :price => rand * 100}} # create a dataset of highest priced products with a price over 70 expensive_stuff = DB[:items].filter('price > 70').reverse_order(:price).limit(10) puts "There are #{expensive_stuff.count} expensive items." puts "Most expensive items (in descending order)" expensive_stuff.each {|i| puts "#{i[:name]} = #{i[:price]}"} # print average of most expensive products puts "Average of expensive stuff: #{expensive_stuff.avg(:price)}" ------------------------------ Sequel is in an early stage of development, so some things might be broken. I appreciate any comments as well as bug reports. Enojy!