lib/gamefic/query/integer.rb
# frozen_string_literal: true module Gamefic module Query # A special query that handles integers instead of entities. # class Integer < Base # @param name [String, nil] def initialize(name: self.class.name) super(name: name) end def filter(_subject, token) return Result.new(token, '') if token.is_a?(::Integer) words = token.keywords number = words.shift return Result.new(nil, token) unless number =~ /\d+/ Result.new(number.to_i, words.join(' ')) end def precision -10_000 end def accept?(_subject, token) token.is_a?(::Integer) end end end end