Sha256: de87007894e8433a30f97ef4a3ba823bc4b9569667e80b8d6f4e2c79efa3490a

Contents?: true

Size: 561 Bytes

Versions: 1

Compression:

Stored size: 561 Bytes

Contents

module HasHashcode
  class Railtie < Rails::Railtie
    railtie_name :has_hashcode
    
    initializer "railtie_name.hook_into_active_record" do
      ActiveRecord.base_hook do
        extend HasHashcode
      end
    end
  end

  def has_hashcode
    class_eval do
      def generate_hashcode
        begin
          self.hashcode = ActiveSupport::SecureRandom.hex(3).upcase
        end while !valid? && errors.on(:hashcode).present?
      end
    end
 
    before_create :generate_hashcode
    validates_uniqueness_of :hashcode, :allow_nil => true
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
has_hashcode-0.1.0 lib/has_hashcode.rb