:nocov: 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].where{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 32 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 17 def self.remove_methods! ((private_instance_methods + instance_methods) - KEEP_METHODS).each{|m| undef_method(m)} end