Class: Gamefic::Query::Integer

Inherits:
Base
  • Object
show all
Defined in:
lib/gamefic/query/integer.rb

Overview

A special query that handles integers instead of entities.

Instance Attribute Summary

Attributes inherited from Base

#arguments

Instance Method Summary collapse

Methods inherited from Base

#bind, #inspect, #name, plain, #select, #span, span

Constructor Details

#initialize(name: self.class.name) ⇒ Integer

Returns a new instance of Integer.

Parameters:

  • name (String, nil) (defaults to: self.class.name)


9
10
11
# File 'lib/gamefic/query/integer.rb', line 9

def initialize(name: self.class.name)
  super(name: name)
end

Instance Method Details

#accept?(_subject, token) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/gamefic/query/integer.rb', line 27

def accept?(_subject, token)
  token.is_a?(::Integer)
end

#filter(_subject, token) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/gamefic/query/integer.rb', line 13

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

#precisionObject



23
24
25
# File 'lib/gamefic/query/integer.rb', line 23

def precision
  -10_000
end