Sha256: 9a080ee0d7a97e7a1436405dfbad317c5dca3c33f472f27a93039a09f7aacf60
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
module Skr module Concerns # @see ClassMethods module RandomHashCode extend ActiveSupport::Concern # ### Random Hash Code Concern # This adds the {#has_random_hash_code} class method module ClassMethods # A random string that identifies an entity, such as a Customer, or Vendor # The code is generated by {Skr::Core::Strings.random} for new records # It's useful for generating *magic* links for access to an entity that cannot be guessed. # @param field_name [Symbol] which field should the hash_code be stored in # @param length [Integer] how long the hash_code should be def has_random_hash_code( field_name: :hash_code, length: 12 ) validates field_name, :presence=>{ :message=>"hash code is not set (should be automatically chosen)" } scope :with_hash_code, lambda{ | code | where({ :hash_code=>code }) } before_validation(:on=>:create) do self[ field_name ] = Skr::Core::Strings.random( length ) if self[ field_name ].blank? end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
stockor-core-0.2 | lib/skr/concerns/random_hash_code.rb |