module Uniquify::ClassMethods
Public Instance Methods
uniquify(*args, &block)
click to toggle source
# File lib/tmp/uniquify.rb 18 def uniquify(*args, &block) 19 options = { :length => 8, :chars => ('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a } 20 options.merge!(args.pop) if args.last.kind_of? Hash 21 args.each do |name| 22 before_create do |record| 23 if block 24 record.ensure_unique(name, &block) 25 else 26 record.ensure_unique(name) do 27 Array.new(options[:length]) { options[:chars].to_a[rand(options[:chars].to_a.size)] }.join 28 end 29 end 30 end 31 end 32 end