4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/recognition/models/redeemable.rb', line 4
def regenerate_code
self.class.recognitions[:code_length] = 10 if self.class.recognitions[:code_length].nil?
prefix = Recognition::Parser.parse_code_part(self.class.recognitions[:prefix], self)
suffix = Recognition::Parser.parse_code_part(self.class.recognitions[:suffix], self)
l = (self.class.recognitions[:code_length] - (prefix.length + suffix.length))
dict = [('a'..'z'),('A'..'Z'),(0..9)].map{|i| i.to_a}.flatten
code = (1..l).map{ dict[rand(dict.length)] }.prepend(prefix).append(suffix).join
if self.class.to_s.constantize.find_all_by_code(code).any?
regenerate_code
else
self.code = code
self
end
end
|