lib/itax_code/parser.rb in itax_code-0.4.1 vs lib/itax_code/parser.rb in itax_code-1.0.0

- old
+ new

@@ -11,17 +11,21 @@ # # ItaxCode::Parser.new("RSSMRA70A01L726S").decode # # @return [Hash] class Parser - class NoTaxCodeError < StandardError; end - class InvalidTaxCodeError < StandardError; end + Error = Class.new(StandardError) + NoTaxCodeError = Class.new(Error) + InvalidControlInternalNumberError = Class.new(Error) + InvalidTaxCodeError = Class.new(Error) def initialize(tax_code, utils = Utils.new) - @tax_code = tax_code&.upcase - @utils = utils + @tax_code = tax_code.upcase raise NoTaxCodeError if @tax_code.blank? raise InvalidTaxCodeError unless Validator.standard_length?(@tax_code) + + @utils = utils + raise InvalidControlInternalNumberError if raw[:cin] != @utils.encode_cin(tax_code) end # Decodes the tax code into its components. # # @return [Hash]