class GuessWhoNoFuzzy::Tokenizer

Public Class Methods

new(str) click to toggle source
# File lib/guess_who_no_fuzzy/tokenizer.rb, line 7
def initialize(str)
  @str = str
end
tokenize!(str) click to toggle source
# File lib/guess_who_no_fuzzy/tokenizer.rb, line 3
def self.tokenize!(str)
  self.new(str).tokenize!
end

Public Instance Methods

tokenize!() click to toggle source
# File lib/guess_who_no_fuzzy/tokenizer.rb, line 11
def tokenize!
  token_arrays = []
  str_size = @str.size

  str_size.times do |i|
    first_slice = i + 1
    first_name = @str.slice(0, first_slice)

    (str_size - i).times do |j|
      mid_slice = j + 1
      mid_name = @str.slice(first_slice, mid_slice)

      last_slice = first_slice + mid_slice
      last_name = @str.slice(last_slice...str_size)

      token_array = [first_name]
      token_array << mid_name unless blank?(mid_name)
      token_array << last_name unless blank?(last_name)
      token_arrays << token_array
    end
  end

  token_arrays
end

Private Instance Methods

blank?(token) click to toggle source
# File lib/guess_who_no_fuzzy/tokenizer.rb, line 38
def blank?(token)
  token.nil? || token.empty?
end