Class: AppMap::Handler::Rails::SQLHandler::SQLExaminer::ActiveRecordExaminer

Inherits:
Object
  • Object
show all
Defined in:
lib/appmap/handler/rails/sql_handler.rb

Constant Summary collapse

@@db_version_warning_issued =
{}

Instance Method Summary collapse

Instance Method Details

#database_typeObject



89
90
91
92
93
94
# File 'lib/appmap/handler/rails/sql_handler.rb', line 89

def database_type
  type = ActiveRecord::Base.connection.adapter_name.downcase.to_sym
  type = :postgres if type == :postgresql

  type
end

#execute_query(sql) ⇒ Object



96
97
98
# File 'lib/appmap/handler/rails/sql_handler.rb', line 96

def execute_query(sql)
  ActiveRecord::Base.connection.execute(sql).inject([]) { |memo, r| memo << r; memo }
end

#issue_warningObject



78
79
80
81
82
83
# File 'lib/appmap/handler/rails/sql_handler.rb', line 78

def issue_warning
  db_type = database_type
  return if @@db_version_warning_issued[db_type]
  warn("AppMap: Unable to determine database version for #{db_type.inspect}") 
  @@db_version_warning_issued[db_type] = true
end

#server_versionObject



85
86
87
# File 'lib/appmap/handler/rails/sql_handler.rb', line 85

def server_version
  ActiveRecord::Base.connection.try(:database_version) || issue_warning
end