lib/simple_captcha/utils.rb in glebtv-simple_captcha-0.3.1 vs lib/simple_captcha/utils.rb in glebtv-simple_captcha-0.4.1
- old
+ new
@@ -22,20 +22,22 @@
def self.simple_captcha_value(key) #:nodoc
SimpleCaptchaData.get_data(key).value rescue nil
end
+ def self.random_str()
+ charset = SimpleCaptcha.charset.split(//)
+ size = SimpleCaptcha.length
+
+ (0...size).map{ charset.to_a[rand(charset.size)] }.join
+ end
+
def self.simple_captcha_new_value(key) #:nodoc
begin
- # very unsafe to display same code over and over
- value = ''
- # SimpleCaptcha.length.times{value << (48 + rand(10)).chr}
-
- SimpleCaptcha.length.times{value << (65 + rand(26)).chr}
d = SimpleCaptchaData.get_data(key)
- d.value = value
+ d.value = self.random_str
d.save!
- value
+ d.value
rescue
nil
end
end