diff options
Diffstat (limited to 'scripts/database/query_analyzers.rb')
-rw-r--r-- | scripts/database/query_analyzers.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/scripts/database/query_analyzers.rb b/scripts/database/query_analyzers.rb new file mode 100644 index 00000000000..390851df81a --- /dev/null +++ b/scripts/database/query_analyzers.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class Database + class QueryAnalyzers + attr_reader :analyzers + + def initialize + @analyzers = ObjectSpace.each_object(::Class).select { |c| c < Base }.map(&:new) + end + + def analyze(query) + analyzers.each { |analyzer| analyzer.analyze(query) } + end + + def save! + analyzers.each(&:save!) + end + end +end + +Dir[File.join(File.expand_path('query_analyzers', __dir__), '*.rb')].each do |plugin| + require plugin +end |