Sha256: 319a90839192b834f0124d02e3e7d1f5bbb0ca6bfcb139a9c5d6de3036fc33ad
Contents?: true
Size: 1.15 KB
Versions: 3
Compression:
Stored size: 1.15 KB
Contents
# frozen_string_literal: true require_relative 'lookup/vies' require_relative 'lookup/hmrc' class Valvat class Lookup def initialize(vat, options = {}) @vat = Valvat(vat) @options = options || {} @options[:requester] ||= @options[:requester_vat] end def validate return false if !@options[:skip_local_validation] && !@vat.valid? return handle_error(response[:error]) if response[:error] response[:valid] && show_details? ? response : response[:valid] end class << self def validate(vat, options = {}) new(vat, options).validate end end private def valid? response[:valid] end def response @response ||= webservice.new(@vat, @options).perform end def webservice case @vat.vat_country_code when 'GB' then HMRC else VIES end end def show_details? @options[:requester] || @options[:detail] end def handle_error(error) if error.is_a?(MaintenanceError) raise error if @options[:raise_error] else raise error unless @options[:raise_error] == false end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
valvat-1.3.0 | lib/valvat/lookup.rb |
valvat-1.2.1 | lib/valvat/lookup.rb |
valvat-1.2.0 | lib/valvat/lookup.rb |