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)
-
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)
-
(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