module ActiveRecord::Comments::ExecuteWithComments

Public Class Methods

exec_query(query, *args, &block) click to toggle source
# File lib/active_record/comments/execute_with_comments.rb, line 10
def exec_query(query, *args, &block)
  query = ActiveRecord::Comments.with_comment_sql(query)
  exec_query_without_comment(query, *args, &block)
end
execute(query, *args, &block) click to toggle source
# File lib/active_record/comments/execute_with_comments.rb, line 18
def execute(query, *args, &block)
  query = ActiveRecord::Comments.with_comment_sql(query)
  execute_without_comment(query, *args, &block)
end
included(base) click to toggle source
# File lib/active_record/comments/execute_with_comments.rb, line 5
def included(base)
  base.class_eval do
    # ActiveRecord 3.2 vs sqlite, maybe others ...
    if base.method_defined?(:exec_query)
      alias_method :exec_query_without_comment, :exec_query
      def exec_query(query, *args, &block)
        query = ActiveRecord::Comments.with_comment_sql(query)
        exec_query_without_comment(query, *args, &block)
      end

    # 99% case
    elsif base.method_defined?(:execute)
      alias_method :execute_without_comment, :execute
      def execute(query, *args, &block)
        query = ActiveRecord::Comments.with_comment_sql(query)
        execute_without_comment(query, *args, &block)
      end
    end
  end
end
install!() click to toggle source
# File lib/active_record/comments/execute_with_comments.rb, line 26
def install!
  if defined? ActiveRecord::ConnectionAdapters::SQLite3Adapter
    install ActiveRecord::ConnectionAdapters::SQLite3Adapter
  end

  if defined? ActiveRecord::ConnectionAdapters::MysqlAdapter
    install ActiveRecord::ConnectionAdapters::MysqlAdapter
  end

  if defined? ActiveRecord::ConnectionAdapters::Mysql2Adapter
    install ActiveRecord::ConnectionAdapters::Mysql2Adapter
  end

  if defined? ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
    install ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
  end
end

Private Class Methods

install(adapter) click to toggle source
# File lib/active_record/comments/execute_with_comments.rb, line 46
def install(adapter)
  adapter.send(:include, ::ActiveRecord::Comments::ExecuteWithComments)
end