If on Ruby 1.8, create a Sequel::BasicObject
class that is
similar to the the Ruby 1.9 BasicObject
class. This is used
in a few places where proxy objects are needed that respond to any method
call.
If on 1.9, create a Sequel::BasicObject
class that is just
like the default BasicObject
class, except that missing
constants are resolved in Object
. This allows the virtual row
support to work with classes without prefixing them with ::, such as:
DB[:bonds].filter{maturity_date > Time.now}
The instance methods to not remove from the class when removing other methods.
Lookup missing constants in ::Object
# File lib/sequel/sql.rb, line 28 def self.const_missing(name) ::Object.const_get(name) end
Remove all but the most basic instance methods from the class. A separate
method so that it can be called again if necessary if you load libraries
after Sequel that add instance methods to
Object
.
# File lib/sequel/sql.rb, line 14 def self.remove_methods! ((private_instance_methods + instance_methods) - KEEP_METHODS).each{|m| undef_method(m)} end