class Snowden::WildcardGenerator
Attributes
edit_distance[R]
Public Class Methods
new(args)
click to toggle source
# File lib/snowden/wildcard_generator.rb, line 3 def initialize(args) @edit_distance = args.fetch(:edit_distance) end
Public Instance Methods
wildcards(string)
click to toggle source
@api private
# File lib/snowden/wildcard_generator.rb, line 8 def wildcards(string) wildcards = [string] edit_distance.times do wildcards = add_wildcard_layer(wildcards) end wildcards = wildcards.uniq wildcards.to_enum end
Private Instance Methods
add_wildcard_layer(list_of_strings)
click to toggle source
# File lib/snowden/wildcard_generator.rb, line 23 def add_wildcard_layer(list_of_strings) list_of_strings.map {|s| base_wildcards(s) }.flatten end
base_wildcards(string)
click to toggle source
# File lib/snowden/wildcard_generator.rb, line 27 def base_wildcards(string) string_range = (0..string.length) [string] .concat(string_range.map { |i| string.dup.insert(i, wildcard_char) }) .concat(string_range.map { |i| string.dup.tap { |s| s[i] = wildcard_char } }) end
wildcard_char()
click to toggle source
# File lib/snowden/wildcard_generator.rb, line 35 def wildcard_char "*" end