module VisibilizeGenerator
Public Class Methods
generate_from_securerandom(type, length)
click to toggle source
# File lib/visibilize/generator.rb, line 56 def generate_from_securerandom(type, length) if SecureRandom.respond_to?(type) begin return SecureRandom.public_send(type, length) rescue ArgumentError return SecureRandom.public_send(type) end end return nil end
generate_integer(length)
click to toggle source
Generators
# File lib/visibilize/generator.rb, line 37 def generate_integer(length) return rand(1...10) if length==1 min=10**(length-1) #1000 max=9*min + (min-1) #9999 rand(min...(max+1)) end
generate_string(length)
click to toggle source
# File lib/visibilize/generator.rb, line 45 def generate_string(length) available_chars=("a".."z").to_a + ("A".."Z").to_a + (0..9).to_a str="" length.times do str+=available_chars[rand(available_chars.size)].to_s end str end
get_value_for(type, klass, column, length, unique)
click to toggle source
# File lib/visibilize/generator.rb, line 7 def get_value_for(type, klass, column, length, unique) method="generate_#{type}" if self.respond_to?(method) from=:generators elsif SecureRandom.respond_to?(type) from=:securerandom else raise "Visibilize Error: No generator defined for type #{type}. (Asked for column #{column} of #{klass.name})" end loop do if from==:generators generated=public_send(method, length) elsif from==:securerandom generated=generate_from_securerandom(type, length) end return generated if !unique || klass.where("#{column}='#{generated}'").empty? end end