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



127
128
129
130
131
132
# File 'lib/appmap/handler/rails/sql_handler.rb', line 127

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

  type
end

#execute_query(sql) ⇒ Object



138
139
140
# File 'lib/appmap/handler/rails/sql_handler.rb', line 138

def execute_query(sql)
  ActiveRecord::Base.connection.execute(sql).to_a
end

#in_transaction?Boolean

Returns:

  • (Boolean)


134
135
136
# File 'lib/appmap/handler/rails/sql_handler.rb', line 134

def in_transaction?
  ActiveRecord::Base.connection.open_transactions > 0
end

#issue_warningObject



116
117
118
119
120
121
# File 'lib/appmap/handler/rails/sql_handler.rb', line 116

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



123
124
125
# File 'lib/appmap/handler/rails/sql_handler.rb', line 123

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