Sha256: 562dc96a7fd398b16bc59d4c1f4183da545b796c9b46f2bd5ba996ffec53e2f9

Contents?: true

Size: 1.17 KB

Versions: 8

Compression:

Stored size: 1.17 KB

Contents

require 'arel/visitors/visitor'
require 'arel/visitors/depth_first'
require 'arel/visitors/to_sql'
require 'arel/visitors/sqlite'
require 'arel/visitors/postgresql'
require 'arel/visitors/mysql'
require 'arel/visitors/mssql'
require 'arel/visitors/oracle'
require 'arel/visitors/join_sql'
require 'arel/visitors/where_sql'
require 'arel/visitors/order_clauses'
require 'arel/visitors/dot'

module Arel
  module Visitors
    VISITORS = {
      'postgresql'      => Arel::Visitors::PostgreSQL,
      'mysql'           => Arel::Visitors::MySQL,
      'mysql2'          => Arel::Visitors::MySQL,
      'mssql'           => Arel::Visitors::MSSQL,
      'sqlserver'       => Arel::Visitors::MSSQL,
      'oracle_enhanced' => Arel::Visitors::Oracle,
      'sqlite'          => Arel::Visitors::SQLite,
      'sqlite3'         => Arel::Visitors::SQLite,
    }

    ENGINE_VISITORS = Hash.new do |hash, engine|
      pool         = engine.connection_pool
      adapter      = pool.spec.config[:adapter]
      hash[engine] = (VISITORS[adapter] || Visitors::ToSql).new(engine)
    end

    def self.visitor_for engine
      ENGINE_VISITORS[engine]
    end
    class << self; alias :for :visitor_for; end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
arel-2.0.10 lib/arel/visitors.rb
square-arel-2.0.9.20110222133018 lib/arel/visitors.rb
arel-2.0.9 lib/arel/visitors.rb
arel-2.0.9.rc1 lib/arel/visitors.rb
arel-2.0.8 lib/arel/visitors.rb
arel-2.0.8.beta.20110131120940 lib/arel/visitors.rb
arel-2.0.7 lib/arel/visitors.rb
arel-2.0.7.beta.20110110114925 lib/arel/visitors.rb