Sha256: 3a2536a25b42b11ae625a841a14ec2e8a4aec701ebbb004047db44b1b635dee4

Contents?: true

Size: 1.25 KB

Versions: 10

Compression:

Stored size: 1.25 KB

Contents

module ActiveRecord
  module ConnectionAdapters
    class JdbcDriver
      def initialize(name)
        @name = name
      end

      def driver_class
        @driver_class ||= begin
          driver_class_const = (@name[0...1].capitalize + @name[1..@name.length]).gsub(/\./, '_')
          Jdbc::Mutex.synchronized do
            unless Jdbc.const_defined?(driver_class_const)
              driver_class_name = @name
              Jdbc.module_eval do
                include_class(driver_class_name) { driver_class_const }
              end
            end
          end
          driver_class = Jdbc.const_get(driver_class_const)
          raise "You specify a driver for your JDBC connection" unless driver_class
          driver_class
        end
      end

      def load
        Jdbc::DriverManager.registerDriver(create)
      end

      def connection(url, user, pass)
        Jdbc::DriverManager.getConnection(url, user, pass)
      rescue
        # bypass DriverManager to get around problem with dynamically loaded jdbc drivers
        props = java.util.Properties.new
        props.setProperty("user", user)
        props.setProperty("password", pass)
        create.connect(url, props)
      end

      def create
        driver_class.new
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 3 rubygems

Version Path
intentmedia-activerecord-jdbc-adapter-1.1.1.1 lib/arjdbc/jdbc/driver.rb
activerecord-jdbc-adapter-1.1.1 lib/arjdbc/jdbc/driver.rb
activerecord-jdbc-adapter-1.1.0 lib/arjdbc/jdbc/driver.rb
activerecord-jdbc-adapter-1.0.3-java lib/arjdbc/jdbc/driver.rb
activerecord-jdbc-adapter-1.0.2-java lib/arjdbc/jdbc/driver.rb
activerecord-jdbc-adapter-1.0.1-java lib/arjdbc/jdbc/driver.rb
activerecord-jdbc-adapter-1.0.0-java lib/arjdbc/jdbc/driver.rb
activerecord-jdbc-adapter-1.0.0.beta2-java lib/arjdbc/jdbc/driver.rb
kb-activerecord-jdbc-adapter-1.0.0.beta1-java lib/arjdbc/jdbc/driver.rb
activerecord-jdbc-adapter-1.0.0.beta1-java lib/arjdbc/jdbc/driver.rb