Sha256: 61d4d3115f5e884f0dea50a44c9294e810b272cc387dc228033770c05dc1926d

Contents?: true

Size: 831 Bytes

Versions: 2

Compression:

Stored size: 831 Bytes

Contents

# frozen_string_literal: true

module ItaxCode
  # Handles the validation logic.
  #
  # @param [Hash] data The user input data
  class Validator
    LENGTH = 16

    def initialize(data = {})
      @encoded = Encoder.new(data).encode
    end

    class << self
      # Checks the tax code standard length against user
      # and business fical code standards.
      #
      # @param [String] code The tax code
      #
      # @return [true, false]
      def standard_length?(code)
        code.length == LENGTH
      end
    end

    # Checks pre computed tax code validity against newly encoded tax code.
    #
    # @param [String] tax_code The pre computed tax code
    #
    # @return [true, false]
    def valid?(tax_code)
      encoded[0..10] == tax_code[0..10]
    end

    private

      attr_accessor :encoded
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
itax_code-0.4.1 lib/itax_code/validator.rb
itax_code-0.4.0 lib/itax_code/validator.rb