Sha256: 8066e5e32d0ccd668b5dd654749cbf8fcb291ab010b60a5529cbf681aa6fadc9

Contents?: true

Size: 1.72 KB

Versions: 8

Compression:

Stored size: 1.72 KB

Contents

module ArJdbc
  module Tasks

    if defined? ActiveRecord::Tasks::DatabaseTasks # AR-4.x

      def self.register_tasks(pattern, task)
        ActiveRecord::Tasks::DatabaseTasks.register_task(pattern, task)
      end

      # support adapter: mariadb (as if it were mysql)
      register_tasks(/mariadb/, ActiveRecord::Tasks::MySQLDatabaseTasks)

    else

      @@tasks = {}

      def self.register_tasks(pattern, task)
        @@tasks[pattern] = task
      end

      def self.tasks_instance(config)
        adapter = config['adapter']
        key = @@tasks.keys.detect { |pattern| adapter[pattern] }
        ( @@tasks[key] || JdbcDatabaseTasks ).new(config)
      end

    end

    require 'arjdbc/tasks/jdbc_database_tasks'
    require 'arjdbc/tasks/db2_database_tasks'
    require 'arjdbc/tasks/derby_database_tasks'
    require 'arjdbc/tasks/h2_database_tasks'
    require 'arjdbc/tasks/hsqldb_database_tasks'
    require 'arjdbc/tasks/mssql_database_tasks'
    require 'arjdbc/tasks/oracle_database_tasks'

    # re-invent built-in (but deprecated on 4.0) tasks :
    register_tasks(/sqlserver/, MSSQLDatabaseTasks)
    register_tasks(/(oci|oracle)/, OracleDatabaseTasks)
    register_tasks(/mssql/, MSSQLDatabaseTasks) # (built-in) alias
    # tasks for custom (JDBC) adapters :
    register_tasks(/db2/, DB2DatabaseTasks)
    register_tasks(/derby/, DerbyDatabaseTasks)
    register_tasks(/h2/, H2DatabaseTasks)
    register_tasks(/hsqldb/, HSQLDBDatabaseTasks)
    # (default) generic JDBC task :
    register_tasks(/^jdbc$/, JdbcDatabaseTasks)

    # NOTE: no need to register "built-in" adapters such as MySQL
    # - on 4.0 these are registered and will be instantiated
    # - while on 2.3/3.x we keep the AR built-in task behavior

  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
neo-activerecord-jdbc-adapter-5.0.pre2 lib/arjdbc/tasks/database_tasks.rb
activerecord-jdbc-adapter-1.3.23 lib/arjdbc/tasks/database_tasks.rb
activerecord-jdbc-adapter-1.3.22 lib/arjdbc/tasks/database_tasks.rb
activerecord-jdbc-adapter-5.0.pre1 lib/arjdbc/tasks/database_tasks.rb
activerecord-jdbc-adapter-1.3.21 lib/arjdbc/tasks/database_tasks.rb
activerecord-jdbc-adapter-1.3.20 lib/arjdbc/tasks/database_tasks.rb
activerecord-jdbc-adapter-1.3.19 lib/arjdbc/tasks/database_tasks.rb
activerecord-jdbc-adapter-1.3.18 lib/arjdbc/tasks/database_tasks.rb