class GroongaQueryLog::IncompatibilityDetector::Version2

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/groonga-query-log/incompatibility-detector.rb, line 50
def initialize
  super(2)
end

Public Instance Methods

detect(statistic) click to toggle source
# File lib/groonga-query-log/incompatibility-detector.rb, line 54
def detect(statistic)
  case statistic.command.name
  when "select"
    detect_select(statistic)
  else
    []
  end
end

Private Instance Methods

detect_select(statistic) click to toggle source
# File lib/groonga-query-log/incompatibility-detector.rb, line 64
def detect_select(statistic)
  command = statistic.command
  incompatibles = []
  space_delimiter_unacceptable_parameters = ["output_columns"]
  space_delimiter_unacceptable_parameters.each do |parameter|
    value = command[parameter]
    if space_delimiter?(value)
      description = "space is used as delimiter"
      message = build_message("select", parameter, description, value)
      incompatibles << message
    end
  end
  incompatibles
end
have_comma?(string) click to toggle source
# File lib/groonga-query-log/incompatibility-detector.rb, line 91
def have_comma?(string)
  string.include?(",")
end
have_function_call?(string) click to toggle source
# File lib/groonga-query-log/incompatibility-detector.rb, line 87
def have_function_call?(string)
  string.include?("(")
end
space_delimiter?(string) click to toggle source
# File lib/groonga-query-log/incompatibility-detector.rb, line 79
def space_delimiter?(string)
  return false if string.nil?
  return false if have_function_call?(string)
  return false if have_comma?(string)

  string.strip.split(/\s+/).size > 1
end