Sha256: 49d146d2985cc51ba5cd0dcb71d7245bb882866655390a47374b02237c94ab4e

Contents?: true

Size: 955 Bytes

Versions: 2

Compression:

Stored size: 955 Bytes

Contents

# frozen_string_literal: true

module ActiveModel
  module Validations
    class CnpjValidator < EachValidator
      def validate_each(record, attribute, value)
        return if value.blank? && options[:allow_blank]
        return if value.nil? && options[:allow_nil]
        return if CNPJ.valid?(value)

        record.errors.add(
          attribute,
          :invalid_cnpj,
          message: options[:message],
          value: value
        )
      end
    end

    module ClassMethods
      # Validates whether or not the specified CNPJ is valid.
      #
      #   class User < ActiveRecord::Base
      #     validates_cnpj_format_of :document
      #   end
      #
      def validates_cnpj_format_of(*attr_names)
        Validators.require_dependency! "cpf_cnpj"
        require "cnpj"
        validates_with CnpjValidator, _merge_attributes(attr_names)
      end

      alias_method :validates_cnpj, :validates_cnpj_format_of
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
validators-3.4.2 lib/validators/validates_cnpj_format_of.rb
validators-3.4.1 lib/validators/validates_cnpj_format_of.rb