JNDI_URI_REGEXP | = | /\Ajdbc:jndi:(.+)/ | Used to identify a jndi connection and to extract the jndi resource name. | |
DECIMAL_TYPE_RE | = | /number|numeric|decimal/io | The types to check for 0 scale to transform :decimal types to :integer. | |
DATABASE_SETUP | = | {} | Contains procs keyed on subadapter type that extend the given database object so it supports the correct database type. |
Attempt to load the JDBC driver class, which should be specified as a string containing the driver class name (which JRuby should autoload). Note that the string is evaled, so this method is not safe to call with untrusted input. Raise a Sequel::AdapterNotFound if evaluating the class name raises a NameError.
# File lib/sequel/adapters/jdbc.rb, line 53 53: def self.load_driver(drv, gem=nil) 54: load_gem(gem) if gem 55: eval drv 56: rescue NameError 57: raise Sequel::AdapterNotFound, "#{drv} not loaded#{", try installing jdbc-#{gem.to_s.downcase} gem" if gem}" 58: end
Allow loading the necessary JDBC support via a gem.
# File lib/sequel/adapters/jdbc.rb, line 35 35: def self.load_gem(name) 36: begin 37: require "jdbc/#{name.to_s.downcase}" 38: rescue LoadError 39: # jdbc gem not used, hopefully the user has the .jar in their CLASSPATH 40: else 41: if defined?(::Jdbc) && ( ::Jdbc.const_defined?(name) rescue nil ) 42: jdbc_module = ::Jdbc.const_get(name) # e.g. Jdbc::SQLite3 43: jdbc_module.load_driver if jdbc_module.respond_to?(:load_driver) 44: end 45: end 46: end