module Marginalia::Comment

Constants

DEFAULT_LINES_TO_IGNORE_REGEX

Public Class Methods

clear!() click to toggle source
# File lib/marginalia/comment.rb, line 47
def self.clear!
  self.marginalia_controller = nil
end
clear_job!() click to toggle source
# File lib/marginalia/comment.rb, line 51
def self.clear_job!
  self.marginalia_job = nil
end
construct_comment() click to toggle source
# File lib/marginalia/comment.rb, line 22
def self.construct_comment
  ret = String.new
  self.components.each do |c|
    component_value = self.send(c)
    if component_value.present?
      ret << "#{c}:#{component_value},"
    end
  end
  ret.chop!
  ret = self.escape_sql_comment(ret)
  ret
end
construct_inline_comment() click to toggle source
# File lib/marginalia/comment.rb, line 35
def self.construct_inline_comment
  return nil if inline_annotations.none?
  escape_sql_comment(inline_annotations.join)
end
escape_sql_comment(str) click to toggle source
# File lib/marginalia/comment.rb, line 40
def self.escape_sql_comment(str)
  while str.include?('/*') || str.include?('*/')
    str = str.gsub('/*', '').gsub('*/', '')
  end
  str
end
update!(controller = nil) click to toggle source
# File lib/marginalia/comment.rb, line 10
def self.update!(controller = nil)
  self.marginalia_controller = controller
end
update_adapter!(adapter) click to toggle source
# File lib/marginalia/comment.rb, line 18
def self.update_adapter!(adapter)
  self.marginalia_adapter = adapter
end
update_job!(job) click to toggle source
# File lib/marginalia/comment.rb, line 14
def self.update_job!(job)
  self.marginalia_job = job
end

Private Class Methods

action() click to toggle source
# File lib/marginalia/comment.rb, line 102
def self.action
  marginalia_controller.action_name if marginalia_controller.respond_to? :action_name
end
application() click to toggle source
# File lib/marginalia/comment.rb, line 80
def self.application
  if defined?(Rails.application)
    Marginalia.application_name ||= Rails.application.class.name.split("::").first
  else
    Marginalia.application_name ||= "rails"
  end

  Marginalia.application_name
end
connection_config() click to toggle source
# File lib/marginalia/comment.rb, line 166
def self.connection_config
  return if marginalia_adapter.pool.nil?
  marginalia_adapter.pool.spec.config
end
controller() click to toggle source
# File lib/marginalia/comment.rb, line 94
def self.controller
  marginalia_controller.controller_name if marginalia_controller.respond_to? :controller_name
end
controller_with_namespace() click to toggle source
# File lib/marginalia/comment.rb, line 98
def self.controller_with_namespace
  marginalia_controller.class.name if marginalia_controller
end
database() click to toggle source
# File lib/marginalia/comment.rb, line 159
def self.database
  if self.connection_config.present?
    self.connection_config[:database]
  end
end
db_host() click to toggle source
# File lib/marginalia/comment.rb, line 153
def self.db_host
  if self.connection_config.present?
    self.connection_config[:host]
  end
end
hostname() click to toggle source
# File lib/marginalia/comment.rb, line 133
def self.hostname
  @cached_hostname ||= Socket.gethostname
end
inline_annotations() click to toggle source
# File lib/marginalia/comment.rb, line 178
def self.inline_annotations
  Thread.current[:marginalia_inline_annotations] ||= []
end
job() click to toggle source
# File lib/marginalia/comment.rb, line 90
def self.job
  marginalia_job.class.name if marginalia_job
end
line() click to toggle source
# File lib/marginalia/comment.rb, line 112
def self.line
  Marginalia::Comment.lines_to_ignore ||= DEFAULT_LINES_TO_IGNORE_REGEX

  last_line = caller.detect do |line|
    line !~ Marginalia::Comment.lines_to_ignore
  end
  if last_line
    root = if defined?(Rails) && Rails.respond_to?(:root)
      Rails.root.to_s
    elsif defined?(RAILS_ROOT)
      RAILS_ROOT
    else
      ""
    end
    if last_line.start_with? root
      last_line = last_line[root.length..-1]
    end
    last_line
  end
end
marginalia_adapter() click to toggle source
# File lib/marginalia/comment.rb, line 76
def self.marginalia_adapter
  Thread.current[:marginalia_adapter]
end
marginalia_adapter=(adapter) click to toggle source
# File lib/marginalia/comment.rb, line 72
def self.marginalia_adapter=(adapter)
  Thread.current[:marginalia_adapter] = adapter
end
marginalia_controller() click to toggle source
# File lib/marginalia/comment.rb, line 60
def self.marginalia_controller
  Thread.current[:marginalia_controller]
end
marginalia_controller=(controller) click to toggle source
# File lib/marginalia/comment.rb, line 56
def self.marginalia_controller=(controller)
  Thread.current[:marginalia_controller] = controller
end
marginalia_job() click to toggle source
# File lib/marginalia/comment.rb, line 68
def self.marginalia_job
  Thread.current[:marginalia_job]
end
marginalia_job=(job) click to toggle source
# File lib/marginalia/comment.rb, line 64
def self.marginalia_job=(job)
  Thread.current[:marginalia_job] = job
end
pid() click to toggle source
# File lib/marginalia/comment.rb, line 137
def self.pid
  Process.pid
end
request_id() click to toggle source
# File lib/marginalia/comment.rb, line 141
def self.request_id
  if marginalia_controller.respond_to?(:request) && marginalia_controller.request.respond_to?(:uuid)
    marginalia_controller.request.uuid
  end
end
sidekiq_job() click to toggle source
# File lib/marginalia/comment.rb, line 106
def self.sidekiq_job
  marginalia_job["class"] if marginalia_job && marginalia_job.respond_to?(:[])
end
socket() click to toggle source
# File lib/marginalia/comment.rb, line 147
def self.socket
  if self.connection_config.present?
    self.connection_config[:socket]
  end
end