forked from dsboulder/query_reviewer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
query_reviewer.rb
50 lines (41 loc) · 1.4 KB
/
query_reviewer.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# QueryReviewer
require "ostruct"
require 'erb'
require 'yaml'
module QueryReviewer
CONFIGURATION = {}
def self.load_configuration
default_config = YAML::load(ERB.new(IO.read(File.join(File.dirname(__FILE__), "..", "query_reviewer_defaults.yml"))).result)
CONFIGURATION.merge!(default_config["all"] || {})
CONFIGURATION.merge!(default_config[Rails.env || "test"] || {})
app_config_file = Rails.root + "config/query_reviewer.yml"
if app_config_file.exist?
app_config = YAML.load(ERB.new(IO.read(app_config_file)).result)
CONFIGURATION.merge!(app_config["all"] || {})
CONFIGURATION.merge!(app_config[Rails.env || "test"] || {})
end
if enabled?
begin
CONFIGURATION["uv"] ||= !Gem.searcher.find("uv").nil?
if CONFIGURATION["uv"]
require "uv"
end
rescue
CONFIGURATION["uv"] ||= false
end
require "query_reviewer/query_warning"
require "query_reviewer/array_extensions"
require "query_reviewer/sql_query"
require "query_reviewer/mysql_analyzer"
require "query_reviewer/sql_sub_query"
require "query_reviewer/mysql_adapter_extensions"
require "query_reviewer/controller_extensions"
require "query_reviewer/sql_query_collection"
end
end
def self.enabled?
CONFIGURATION["enabled"]
end
end
# Rails Integration
require 'query_reviewer/rails' if defined?(Rails)