Historically, one of the reasons some people have disliked Sequel is that
it modifies the core classes. Since Sequel 2, I'm fairly sure we've made
fewer modifications than ActiveRecord and DataMapper, and since Sequel 3,
these modifications can be disabled entirely so that Sequel doesn't modify
core classes. Unfortunately, Sequel is not as user friendly without the
modifications, though recent versions have made usage without the core
extensions easier.
Probably the most significant new feature in ruby 2.0 is the addition of
refinements, which basically allow scoped monkey patching, allowing you to
add methods to core classes in your own code, without affecting the core
classes outside your code. This is a natural fit for Sequel's
core_extensions, so I've created an extension called core_refinements that
adds refinements for most of the methods added in core_extensions.
The core_refinements extension is available at
http://pastie.org/pastes/5337588/text, and should be placed in
lib/sequel/extensions/core_refinements.rb somewhere in your ruby load path
if you want to use it. You'll also want to set the
SEQUEL_NO_CORE_EXTENSIONS constant or environment variable before requiring
Sequel so that the core extensions are not loaded. As refinements are
still an experimental feature in ruby 2.0 preview1, and it is possible they
will be removed entirely before ruby 2.0 final, I have decided not to
commit this extension to the Sequel repository yet. If the ruby core team
decides to include refinements in ruby 2.0 final, I will be committing this
extension to Sequel.
The ruby core team is looking for feedback on refinements, so if you want
to try out the core_refinements extension on ruby 2.0 and give the ruby
core team some feedback, I'm sure they'd appreciate it
(https://bugs.ruby-lang.org/issues/4085).
Thanks,
Jeremy