module Gamefic::Scanner
A module for matching objects to tokens.
Constants
- DEFAULT_PROCESSORS
Public Class Methods
Source
# File lib/gamefic/scanner.rb, line 45 def self.processors @processors ||= [] end
@return [Array<Class<Base>>]
Source
# File lib/gamefic/scanner.rb, line 22 def self.scan(selection, token, use = processors) result = nil use.each do |processor| result = processor.scan(selection, token) break result unless result.matched.empty? end result end
Scan entities against a token.
@param selection [Array<Entity>] @param token [String] @param use [Array<Class<Scanner::Base>>] @return [Result, nil]
Source
# File lib/gamefic/scanner.rb, line 53 def self.strictness(processor) (processors.length - (processors.find_index(processor) || processors.length)) * 100 end
A measure of a scan processor’s strictness based on its order of use. Higher values indicate higher strictness.
@return [Integer]
Source
# File lib/gamefic/scanner.rb, line 40 def self.use *klasses processors.replace klasses.flatten end
Select the scanner processors to use in entity queries. Each processor will be used in order until one of them returns matches. The default processor list is ‘DEFAULT_PROCESSORS`.
Processor classes should be in order from most to least strict rules for matching tokens to entities.
@param klasses [Array<Class<Scanner::Base>>] @return [Array<Class<Scanner::Base>>]