module VatidEu
Constants
- BASE_URL
- DEFAULT_TIMEOUT
- VALID_COUNTRIES
Public Instance Methods
requester()
click to toggle source
# File lib/vatid_eu.rb, line 17 def requester @@requester end
requester=(data)
click to toggle source
# File lib/vatid_eu.rb, line 14 def requester=(data) @@requester = data end
timeout()
click to toggle source
# File lib/vatid_eu.rb, line 25 def timeout @@timeout || DEFAULT_TIMEOUT end
timeout=(new_timeout)
click to toggle source
# File lib/vatid_eu.rb, line 22 def timeout=(new_timeout) @@timeout = new_timeout end
valid?(country_or_id, id=nil)
click to toggle source
# File lib/vatid_eu.rb, line 29 def valid?(country_or_id, id=nil) if id.nil? country = country_or_id[0..1].upcase id = country_or_id[2..-1] else country = country_or_id.upcase end return false unless VALID_COUNTRIES.include?(country) response = check(country, id) if response['error'] raise response['error'].first['text'].first else if response['response'].first['valid'].first == 'true' if requester { :request_identifier => response['response'].first['request-identifier'].first, :request_date => response['response'].first['request-date'].first } else true end else false end end end
Private Instance Methods
check(country, id)
click to toggle source
# File lib/vatid_eu.rb, line 60 def check(country, id) url = Addressable::URI.parse BASE_URL url.path += "#{country}/" url.path += "#{id}/" url.path += "#{requester[:country]}/#{requester[:id]}" if requester body = get_url(url) XmlSimple.xml_in(body, { 'KeepRoot' => true }) end
get_url(url)
click to toggle source
# File lib/vatid_eu.rb, line 69 def get_url(url) http = Net::HTTP.new(url.host, 80) http.read_timeout = timeout response = http.get url.request_uri, 'User-agent' => 'vatid_eu ruby client' case response when Net::HTTPSuccess, Net::HTTPOK response.body else response.error! end end