class Sequel::BasicObject

  1. lib/sequel/sql.rb
Parent: Sequel

: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].filter{maturity_date > Time.now}

Methods

Public Class

  1. const_missing
  2. remove_methods!

Constants

KEEP_METHODS = %w"__id__ __send__ __metaclass__ instance_eval instance_exec == equal? initialize method_missing"  

The instance methods to not remove from the class when removing other methods.

Public Class methods

const_missing (name)

Lookup missing constants in ::Object

[show source]
# File lib/sequel/sql.rb, line 30
def self.const_missing(name)
  ::Object.const_get(name)
end
remove_methods! ()

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.

[show source]
# File lib/sequel/sql.rb, line 15
def self.remove_methods!
  ((private_instance_methods + instance_methods) - KEEP_METHODS).each{|m| undef_method(m)}
end