class GroongaQueryLog::CommandVersionCompatibilityChecker
Public Class Methods
new(options)
click to toggle source
# File lib/groonga-query-log/command-version-compatibility-checker.rb, line 21 def initialize(options) @options = options @incompatibility_detector = @options.create_incompatibility_detector @output = $stdout @nth_item = 1 end
Public Instance Methods
check(input)
click to toggle source
# File lib/groonga-query-log/command-version-compatibility-checker.rb, line 40 def check(input) compatible = true parser = Parser.new parser.parse(input) do |statistic| incompatibles = @incompatibility_detector.detect(statistic) next if incompatibles.empty? compatible = false incompatibles.each do |incompatible| report_incompatible(statistic, incompatible) end end compatible end
start() { || ... }
click to toggle source
# File lib/groonga-query-log/command-version-compatibility-checker.rb, line 28 def start original_output = @output result = nil @options.create_output do |output| @output = output result = yield end result ensure @output = original_output end
Private Instance Methods
report_incompatible(statistic, incompatible)
click to toggle source
# File lib/groonga-query-log/command-version-compatibility-checker.rb, line 55 def report_incompatible(statistic, incompatible) nth_item = @nth_item @nth_item += 1 version = @incompatibility_detector.version start_time = statistic.start_time.strftime("%Y-%m-%d %H:%M:%S.%6N") @output.puts("#{nth_item}: version#{version}: #{incompatible}") @output.puts(" %s" % start_time) @output.puts(" #{statistic.raw_command}") @output.puts(" Parameters:") statistic.command.arguments.each do |key, value| @output.puts(" <#{key}>: <#{value}>") end end