Class: ActiveRecordQueryCount::Printer::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record_query_count/printer/base.rb

Direct Known Subclasses

Console, Html, HtmlCompare

Constant Summary collapse

TEMPLATE_PATH =
File.join(parent_dir, 'assets', 'template.html.erb')
TEMPLATE_COMPARING_PATH =
File.join(parent_dir, 'assets', 'comparing.html.erb')
CSS_PATH =
File.join(parent_dir, 'assets', 'style.css')
JS_PATH =
File.join(parent_dir, 'assets', 'bar_chart.js')
CHART_JS_CONTENT =
File.join(parent_dir, 'assets', 'chart.min.js')
BASE_QUERY_COUNTER_PATH =
File.join(parent_dir, 'assets', 'template_base_query_counter.html.erb')
INJECT_TEMPLATE_PATH =
File.join(parent_dir, 'assets', 'template_for_inject.html.erb')

Instance Method Summary collapse

Instance Method Details

#base_query_counter_contentObject



60
61
62
# File 'lib/active_record_query_count/printer/base.rb', line 60

def base_query_counter_content
  File.read(BASE_QUERY_COUNTER_PATH)
end

#chart_js_contentObject



44
45
46
# File 'lib/active_record_query_count/printer/base.rb', line 44

def chart_js_content
  File.read(CHART_JS_CONTENT)
end

#css_contentObject



48
49
50
# File 'lib/active_record_query_count/printer/base.rb', line 48

def css_content
  File.read(CSS_PATH)
end

#filter_data(data) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/active_record_query_count/printer/base.rb', line 13

def filter_data data
  data = data.select { |_, v| v[:count] >= Configuration.ignore_table_count }
  data = data.sort_by { |_, v| -v[:count] }.each do |_category, info|
    info[:location] = info[:location].sort_by do |_, detail|
      -detail[:count]
    end.first(Configuration.max_locations_per_table).to_h
  end
  data.to_h
end

#inject_template_contentObject



64
65
66
# File 'lib/active_record_query_count/printer/base.rb', line 64

def inject_template_content
  File.read(INJECT_TEMPLATE_PATH)
end

#js_contentObject



40
41
42
# File 'lib/active_record_query_count/printer/base.rb', line 40

def js_content
  File.read(JS_PATH)
end

#open_file(html_dest) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/active_record_query_count/printer/base.rb', line 32

def open_file html_dest
  if ENV['WSL_DISTRIBUTION']
    Launchy.open("file://wsl%24/#{ENV['WSL_DISTRIBUTION']}#{html_dest}")
  else
    Launchy.open(html_dest)
  end
end

#sort_data(data) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/active_record_query_count/printer/base.rb', line 23

def sort_data data
  data = data.sort_by { |_, v| -v[:count] }.each do |_category, info|
    info[:location] = info[:location].sort_by do |_, detail|
      -detail[:count]
    end.to_h
  end
  data.to_h
end

#template_comparing_contentObject



56
57
58
# File 'lib/active_record_query_count/printer/base.rb', line 56

def template_comparing_content
  File.read(TEMPLATE_COMPARING_PATH)
end

#template_contentObject



52
53
54
# File 'lib/active_record_query_count/printer/base.rb', line 52

def template_content
  File.read(TEMPLATE_PATH)
end