module Skr::Concerns::CodeIdentifier::ClassMethods
### Code Identifier Concern This adds the {#has_code_identifier} class method
Public Instance Methods
has_code_identifier( from: nil, max_length: 10 )
click to toggle source
A 2-10 character string that identifies an entity, such as a Customer
, Vendor
, or SKU. The code is often assigned by the user, but may also be auto-generated by {Skr::Core::Strings.code_identifier}
@param max_length [Integer] how long the code is allowed to be @param from [Symbol], method to call for a string to base the code upon
# File lib/skr/concerns/code_identifier.rb, line 19 def has_code_identifier( from: nil, max_length: 10 ) validates :code, :length=>2..max_length, :presence=>true, :uniqueness=>true alias_attribute :record_identifier, :code if from before_validation(:on=>:create) do source = self[from] unless source.blank? self.code ||= Skr::Core::Strings.code_identifier( source, length:max_length ) end end end before_validation do self.code = self.code.upcase unless self.code.blank? end end