merb_sequel

A plug-in for the Merb framework that provides support for Sequel models.

This is fork of the code in the official merb-plugins (github.com/wycats/merb-plugins) repository. I did separate repository and Gem to allow faster and more independent release cycle to keep up with the Sequel monthly releases.

Plug-in should be compatible with Merb 0.9.9 and higher and Sequel 1.4.0 and higher including 2.x.x and incoming 3.0.0.

Any issues please report to http://github.com/pk/merb_sequel/issues.

Install

gem install pk-merb_sequel --source http://gems.github.com

In Merb, add it as a dependency to your config/dependencies.rb:

dependency 'pk-merb_sequel', :require_as => 'merb_sequel'

Because of Merb ORM plugin loading mechanism you neeed to change init.rb:

use_orm :sequel

to

Merb.orm = :sequel

If you don’t do this Merb will complain that there is no merb_sequel gem also if you have merb_sequel installed it will load your system wide gem instead of the pk-merb_sequel gem.

Compatibility

Ruby 1.8.7:

Sequel 2.11.0

All pass

Sequel 2.12.0

All pass

Sequel 3.0.0

All pass

Ruby 1.9.1:

Sequel 2.11.0

All pass except session spec failing due to Marshall issues.

Sequel 2.12.0

All pass except session spec failing due to Marshall issues.

Sequel 3.0.0

All pass except session spec failing due to Marshall issues.

RSpec transactional examples

If you want to cut significantly runtime of your test suite which is using Sequel you can enable transactional examples. Just add following line to your spec_helper.rb or any spec you want to be transactional:

require 'merb_sequel/rspec/sequel'

Now each example is wrapped in a Sequel transaction and when example finishes Sequel::Error::Rollback is raised which cause transaction to rollback.

Connection options

Merb Sequel plug-in uses config/database.yml for connection configuration.

Options are:

  • adapter. :sqlite is assumed by default.

  • database, default is “hey_dude_configure_your_database”. This should be either :memory: or file path for SQLite.

  • db_type: default is nil. Use “mssql” to connect to MSSQL using ODBC.

  • encoding or charset, default is utf8.

  • host. localhost is assumed by default.

  • logger default is Merb.logger

  • password. WARNING: default password is an empty string.

  • socket Use socket to connect to DB.

  • username or user, default is an empty string

Generators

After you install the plug-in, merb-gen can generate Sequel models for you:

merb-gen model --orm=sequel Article

same with the resources

merb-gen resource --orm=sequel Article

Note that if you have specified that you use Sequel in init.rb or environment specific init file (for instance, environments/development.rb) via use_orm :sequel, you don’t need to specify –orm option explicitly when using merb-gen.

Contributors

Originally written by Duane Johnson (canadaduane at gmail.com).

Contributions by:

  • Wayne E. Seguin

  • Lance Carlson

  • Jacob Dunphy

  • Lori Holden

  • Pavel Kunc

  • e-mac

  • Piotr Usewicz

Maintained by Pavel Kunc (pavel.kunc at gmail.com)