Sha256: 37f4e98187c95cd4e799b6485d1fb82c0f541a9e1158eb997b03eb86409930b8

Contents?: true

Size: 603 Bytes

Versions: 1

Compression:

Stored size: 603 Bytes

Contents

require 'valvat'
require 'net/http'
require 'yaml'

class Valvat
  module Lookup
    def self.validate(vat)
      vat = Valvat(vat)
      return false unless vat.european?
      result = begin
        YAML.load(Net::HTTP.start("isvat.appspot.com", 80) {|http|
          http.get("/#{vat.to_a.join("/")}/")
        }.body)
      rescue => err
        # Ugly, ugly for better specs
        raise if defined?(FakeWeb::NetConnectNotAllowedError) && FakeWeb::NetConnectNotAllowedError === err
        nil
      end
      
      result.is_a?(Hash) && result["error_code"] == 1 ? nil : result
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
valvat-0.2.1 lib/valvat/lookup.rb