class Gamefic::Query::Text


A special query that handles text instead of entities.

def accept?(_subject, token)

def accept?(_subject, token)
  match?(token)
end

def argument

def argument
  arguments.first
end

def filter(_subject, token)

def filter(_subject, token)
  if match? token
    Result.new(token, '')
  else
    Result.new(nil, token)
  end
end

def initialize(argument = /.*/, name: self.class.name)

Parameters:
  • name (String, nil) --
  • argument (String, Regexp) --
def initialize(argument = /.*/, name: self.class.name)
  super(argument, name: name)
  validate_argument
end

def match?(token)

def match?(token)
  return false unless token.is_a?(String) && !token.empty?
  case argument
  when Regexp
    token.match?(argument)
  else
    argument == token
  end
end

def precision

def precision
  -10_000
end

def select(_subject)

Returns:
  • (String, Regexp) -
def select(_subject)
  argument
end

def validate_argument

def validate_argument
  return if argument.is_a?(String) || argument.is_a?(Regexp)
  raise ArgumentError, 'Invalid text query argument'
end