lib/uniqueness/generator.rb in uniqueness-0.7.0 vs lib/uniqueness/generator.rb in uniqueness-0.8.0
- old
+ new
@@ -4,11 +4,13 @@
options ||= {}
options = uniqueness_default_options.merge(opts)
dict = uniqueness_dictionary - options[:blacklist]
dict -= [*(:A..:Z)].map(&:to_s) unless options[:case_sensitive]
dict -= uniqueness_ambigious_dictionary if options[:type].to_sym == :human
- Array.new(options[:length]).map { dict[rand(dict.length)] }.join
+ dict = uniqueness_numbers_dictionary if options[:type].to_sym == :numbers
+ code = Array.new(options[:length]).map { dict[rand(dict.length)] }.join
+ "#{options[:prefix]}#{code}#{options[:suffix]}"
end
# Dictionary used for uniqueness generation
def uniqueness_dictionary
[*(:A..:Z), *(:a..:z), *(0..9)].map(&:to_s)
@@ -16,16 +18,22 @@
def uniqueness_ambigious_dictionary
[:b, :B, :o, :O, :q, :i, :I, :l, :L, :s, :S, :u, :U, :z, :Z, :g, 1, 2, 9, 5].map(&:to_s)
end
+ def uniqueness_numbers_dictionary
+ [*(0..9)].map(&:to_s)
+ end
+
# Default sorting options
def uniqueness_default_options
{
length: 32,
type: :auto,
blacklist: [],
- scope: []
+ scope: [],
+ suffix: '',
+ prefix: ''
}
end
end
end