Sha256: a267a58748e5d225844dfe1d16297290d531b93dd80e7d354f9adcdb9713a76a
Contents?: true
Size: 731 Bytes
Versions: 1
Compression:
Stored size: 731 Bytes
Contents
module ActsAsKeyed module InstanceMethods def to_param options[:as_param] ? self.key : self.id.to_s end def regenerate_key! self.create_key self.save end def key=(val) write_attribute(options[:column], val) end def key read_attribute(options[:column]) end protected def create_key k = nil 100.times do k = random_key break if !self.class.key_exists?(k) k = nil end raise NoAvailableKeysError if k.nil? self.key = k end def random_key code_array=[] 1.upto(options[:size]) { code_array << options[:chars][rand(options[:chars].length)] } code_array.join('') end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
acts_as_keyed-0.1.2 | lib/acts_as_keyed/instance_methods.rb |