class Gamefic::Query::Text
A special query that handles text instead of entities.
Public Class Methods
Source
# File lib/gamefic/query/text.rb, line 10 def initialize(argument = /.*/, name: self.class.name) super(argument, name: name) validate_argument end
@param argument [String, Regexp] @param name [String, nil]
Calls superclass method
Gamefic::Query::Base::new
Public Instance Methods
Source
# File lib/gamefic/query/text.rb, line 36 def accept?(_subject, token) match?(token) end
Source
# File lib/gamefic/query/text.rb, line 24 def filter(_subject, token) if match? token Result.new(token, '') else Result.new(nil, token) end end
Source
# File lib/gamefic/query/text.rb, line 20 def select(_subject) argument end
@return [String, Regexp]
Private Instance Methods
Source
# File lib/gamefic/query/text.rb, line 42 def match?(token) return false unless token.is_a?(String) && !token.empty? case argument when Regexp token.match?(argument) else argument == token end end
Source
# File lib/gamefic/query/text.rb, line 53 def validate_argument return if argument.is_a?(String) || argument.is_a?(Regexp) raise ArgumentError, 'Invalid text query argument' end