Class: Marginalia::Railtie

Inherits:
Rails::Railtie
  • Object
show all
Defined in:
lib/marginalia/railtie.rb,
lib/marginalia/railtie.rb

Class Method Summary collapse

Class Method Details

.insertObject



21
22
23
24
# File 'lib/marginalia/railtie.rb', line 21

def self.insert
  insert_into_active_record
  insert_into_action_controller
end

.insert_into_action_controllerObject



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/marginalia/railtie.rb', line 26

def self.insert_into_action_controller
  ActionController::Base.class_eval do
    def record_query_comment
      Marginalia::Comment.update!(self)
      yield
    ensure
      Marginalia::Comment.clear!
    end
    around_filter :record_query_comment
  end
end

.insert_into_active_recordObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/marginalia/railtie.rb', line 38

def self.insert_into_active_record
  if defined? ActiveRecord::ConnectionAdapters::Mysql2Adapter
    if ActiveRecord::Base.connection.is_a?(ActiveRecord::ConnectionAdapters::Mysql2Adapter)
      ActiveRecord::ConnectionAdapters::Mysql2Adapter.module_eval do
        include Marginalia::ActiveRecordInstrumentation
      end
    end
  end

  if defined? ActiveRecord::ConnectionAdapters::MysqlAdapter
    if ActiveRecord::Base.connection.is_a?(ActiveRecord::ConnectionAdapters::MysqlAdapter)
      ActiveRecord::ConnectionAdapters::MysqlAdapter.module_eval do
        include Marginalia::ActiveRecordInstrumentation
      end
    end
  end

  # SQL queries made through PostgreSQLAdapter#exec_delete will not be annotated.
  if defined? ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
    if ActiveRecord::Base.connection.is_a?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
      ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.module_eval do
        include Marginalia::ActiveRecordInstrumentation
      end
    end
  end

  if defined? ActiveRecord::ConnectionAdapters::SQLite3Adapter
    if ActiveRecord::Base.connection.is_a?(ActiveRecord::ConnectionAdapters::SQLite3Adapter)
      ActiveRecord::ConnectionAdapters::SQLite3Adapter.module_eval do
        include Marginalia::ActiveRecordInstrumentation
      end
    end
  end
end