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]