vatman 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in vatman.gemspec
4
+ gemspec
data/Rakefile CHANGED
@@ -1,12 +1 @@
1
- require 'rubygems'
2
- require 'rake'
3
- require 'echoe'
4
-
5
- Echoe.new('vatman', '0.1.0') do |p|
6
- p.description = "A gem that checks VAT numbers against the Europa web service"
7
- p.url = "http://github.com/neilmiddleton/vatman"
8
- p.author = "Neil Middleton"
9
- p.email = "neilmiddleton @nospam@ gmail.com"
10
- p.ignore_pattern = ["tmp/*", "script/*"]
11
- p.development_dependencies = []
12
- end
1
+ require "bundler/gem_tasks"
@@ -1,29 +1,36 @@
1
- require 'soap/wsdlDriver'
1
+ require "vatman/version"
2
+ require 'savon'
2
3
 
3
- class Vatman
4
- def initialize(country, number)
5
- @country, @number = country, number
6
- end
7
-
8
- def name
9
- get_variable(:name)
10
- end
11
-
12
- def address
13
- get_variable(:address)
14
- end
15
-
16
- def valid?
17
- get_variable(:valid) == 'true'
18
- end
19
-
20
- private
21
-
22
- def response
23
- @response ||= SOAP::WSDLDriverFactory.new('http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl').create_rpc_driver.checkVat(:countryCode => @country, :vatNumber => @number)
4
+ module Vatman
5
+ class Check
6
+
7
+ def initialize(country, number)
8
+ @country, @number = country, number.to_s.gsub(' ', '')
24
9
  end
25
10
 
26
- def get_variable(var)
27
- response.send(var) if response.respond_to?(var)
11
+ def valid?
12
+ response[:valid]
28
13
  end
29
- end
14
+
15
+ def name
16
+ response[:name]
17
+ end
18
+
19
+ def address
20
+ response[:address]
21
+ end
22
+
23
+ private
24
+
25
+ def response
26
+ @response ||= get_vat_check
27
+ end
28
+
29
+ def get_vat_check
30
+ client = ::Savon::Client.new("http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl")
31
+ response = client.request :tnsl, :check_vat, :body => {:country_code => @country, :vat_number => @number}
32
+ response.to_hash[:check_vat_response]
33
+ end
34
+ end
35
+ end
36
+
@@ -0,0 +1,3 @@
1
+ module Vatman
2
+ VERSION = "1.0.0"
3
+ end
@@ -0,0 +1,8 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require File.dirname(__FILE__) + '/../lib/vatman'
5
+
6
+ RSpec.configure do |config|
7
+
8
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Vatman do
4
+ it 'should return details of a valid VAT number' do
5
+ v = Vatman::Check.new("GB", 800634860)
6
+ v.should be_valid
7
+ v.name.should == 'KYANMEDIA LTD'
8
+ v.address.should == "171 HIGH STREET\nGUILDFORD\nSURREY\n\n\nGU1 3AJ"
9
+ end
10
+
11
+ it 'should accept string formatted numbers' do
12
+ v = Vatman::Check.new("GB", "800 6348 60")
13
+ v.should be_valid
14
+ end
15
+
16
+ it 'should reject invalid VAT numbers' do
17
+ v = Vatman::Check.new("GB", 12345679)
18
+ v.should_not be_valid
19
+ end
20
+
21
+ it 'should reject invalid string vat numbers' do
22
+ v = Vatman::Check.new("GB", "abcdefghijkl")
23
+ v.should_not be_valid
24
+ end
25
+ end
@@ -1,33 +1,24 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "vatman/version"
2
4
 
3
5
  Gem::Specification.new do |s|
4
- s.name = %q{vatman}
5
- s.version = "0.1.0"
6
+ s.name = "vatman"
7
+ s.version = Vatman::VERSION
8
+ s.authors = ["Neil Middleton"]
9
+ s.email = ["neil.middleton@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{A gem that checks VAT numbers against the Europa web service}
6
12
 
7
- s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Neil Middleton"]
9
- s.cert_chain = ["/Users/neil/.ssh/gem-public_cert.pem"]
10
- s.date = %q{2010-09-24}
11
- s.description = %q{A gem that checks VAT numbers against the Europa web service}
12
- s.email = %q{neilmiddleton @nospam@ gmail.com}
13
- s.extra_rdoc_files = ["lib/vatman.rb"]
14
- s.files = ["Rakefile", "lib/vatman.rb", "test/test_helper.rb", "test/test_vatman.rb", "Manifest", "vatman.gemspec"]
15
- s.homepage = %q{http://github.com/neilmiddleton/vatman}
16
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Vatman", "--main", "Readme.rdoc"]
17
- s.require_paths = ["lib"]
18
- s.rubyforge_project = %q{vatman}
19
- s.rubygems_version = %q{1.3.7}
20
- s.signing_key = %q{/Users/neil/.ssh/gem-private_key.pem}
21
- s.summary = %q{A gem that checks VAT numbers against the Europa web service}
22
- s.test_files = ["test/test_helper.rb", "test/test_vatman.rb"]
13
+ s.rubyforge_project = "vatman"
23
14
 
24
- if s.respond_to? :specification_version then
25
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
26
- s.specification_version = 3
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.require_paths = ["lib"]
27
19
 
28
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
29
- else
30
- end
31
- else
32
- end
20
+ # specify any dependencies here; for example:
21
+ s.add_development_dependency "rspec"
22
+ s.add_runtime_dependency "savon"
23
+ s.add_runtime_dependency "curb"
33
24
  end
metadata CHANGED
@@ -1,100 +1,89 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: vatman
3
- version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 1
9
- - 0
10
- version: 0.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Neil Middleton
14
9
  autorequire:
15
10
  bindir: bin
16
- cert_chain:
17
- - |
18
- -----BEGIN CERTIFICATE-----
19
- MIIDPjCCAiagAwIBAgIBADANBgkqhkiG9w0BAQUFADBFMRcwFQYDVQQDDA5uZWls
20
- Lm1pZGRsZXRvbjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQB
21
- GRYDY29tMB4XDTEwMDkyNDExMjA1N1oXDTExMDkyNDExMjA1N1owRTEXMBUGA1UE
22
- AwwObmVpbC5taWRkbGV0b24xFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmS
23
- JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMLC
24
- iWrSruPF5YovUpZRTrhJspJx6cXDtGCnrgLp8PFcT8MGI7OhRzSGGD+vxNvJsifR
25
- 9v9zyliXK/lPSOifQXbTtcr4dMK8Jb1bgZg+E/5cVy0G674vRkQQTzCZ6NH+ZxhB
26
- wzNH9RtmszlPT2AQrXcNQ9fYS7v22X6vhsBf+inE5eT31V5vgws8ME4SIdZq9qmY
27
- naFwbdLpYYE6qT7UHZdePpUXAM++cOh67Vh2qde0VIZ0wGxZpWHyJk57z3i5N7Da
28
- Me3FZHRdwDObYrKZbJgQgmStkuOja6idPG+/ONTtv6qFZxGMCwWue5n6JjANSkwO
29
- M3P28BbipRpwfCBOIF0CAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
30
- HQYDVR0OBBYEFBbDYvZ4H9E5K2a0hUUVhDoVXKPQMA0GCSqGSIb3DQEBBQUAA4IB
31
- AQAro6wdwChkL326Pwjgpwo5BR/Funix94lNTaFq7nYLaIi/TFjw1u5s0pqDEM8P
32
- ypS0TFV1loQprbRWdl1lVdL/hiX7JxXTiNrnSQDY3/VHBzkrjteRBkfyS20Sf3jB
33
- dAlsNpRvBtaGrOIaWZATC0IcQGK3DGcBDisv6e6W6P+9fDX1XwtXTuICX1DHYA1D
34
- GB6kBgQkQd2QjP6DRGyrlL2fbl2Oev0FqFjfZ9mRiD8ef1ACER1GnDsKg/9OnYGs
35
- Ks8MiYUeZO7w/+79LBtvPSg67211h78g3knsqPrMy+IZClqFLeDmD2L34Gs9Wfq4
36
- oWbD/eYyk9swj1CrllXihsbD
37
- -----END CERTIFICATE-----
38
-
39
- date: 2010-09-24 00:00:00 +01:00
40
- default_executable:
41
- dependencies: []
42
-
43
- description: A gem that checks VAT numbers against the Europa web service
44
- email: neilmiddleton @nospam@ gmail.com
11
+ cert_chain: []
12
+ date: 2011-10-13 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &70252596627560 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70252596627560
25
+ - !ruby/object:Gem::Dependency
26
+ name: savon
27
+ requirement: &70252596627140 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70252596627140
36
+ - !ruby/object:Gem::Dependency
37
+ name: curb
38
+ requirement: &70252596626720 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70252596626720
47
+ description:
48
+ email:
49
+ - neil.middleton@gmail.com
45
50
  executables: []
46
-
47
51
  extensions: []
48
-
49
- extra_rdoc_files:
50
- - lib/vatman.rb
51
- files:
52
+ extra_rdoc_files: []
53
+ files:
54
+ - .gitignore
55
+ - .rspec
56
+ - Gemfile
52
57
  - Rakefile
53
58
  - lib/vatman.rb
54
- - test/test_helper.rb
55
- - test/test_vatman.rb
56
- - Manifest
59
+ - lib/vatman/version.rb
60
+ - spec/spec_helper.rb
61
+ - spec/vatman_spec.rb
57
62
  - vatman.gemspec
58
- has_rdoc: true
59
- homepage: http://github.com/neilmiddleton/vatman
63
+ homepage: ''
60
64
  licenses: []
61
-
62
65
  post_install_message:
63
- rdoc_options:
64
- - --line-numbers
65
- - --inline-source
66
- - --title
67
- - Vatman
68
- - --main
69
- - Readme.rdoc
70
- require_paths:
66
+ rdoc_options: []
67
+ require_paths:
71
68
  - lib
72
- required_ruby_version: !ruby/object:Gem::Requirement
69
+ required_ruby_version: !ruby/object:Gem::Requirement
73
70
  none: false
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- hash: 3
78
- segments:
79
- - 0
80
- version: "0"
81
- required_rubygems_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
76
  none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 11
87
- segments:
88
- - 1
89
- - 2
90
- version: "1.2"
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
91
81
  requirements: []
92
-
93
82
  rubyforge_project: vatman
94
- rubygems_version: 1.3.7
83
+ rubygems_version: 1.8.6
95
84
  signing_key:
96
85
  specification_version: 3
97
86
  summary: A gem that checks VAT numbers against the Europa web service
98
- test_files:
99
- - test/test_helper.rb
100
- - test/test_vatman.rb
87
+ test_files:
88
+ - spec/spec_helper.rb
89
+ - spec/vatman_spec.rb
data.tar.gz.sig DELETED
@@ -1,2 +0,0 @@
1
- B> �j�I��F��ۊd�S�Pi'yW�Z ���x�^QHX�L�O��� �d��7Ώ�X��ɺ�p��L""RZ����tO�|^��5�\!2����_I8o�E����m}5r��0��YC<�fZ��S�+k�( m���ƈB��k:0�*)��4g#^-�p�
2
- �����χ>��ɖ�t"˝��'��E�����Jv�FT9��[]9���Ow����.A�̔�[���أ�7�q������X��k.�nL̜-+����
data/Manifest DELETED
@@ -1,5 +0,0 @@
1
- Rakefile
2
- lib/vatman.rb
3
- test/test_helper.rb
4
- test/test_vatman.rb
5
- Manifest
@@ -1,2 +0,0 @@
1
- require 'test/unit'
2
- require File.dirname(__FILE__) + '/../lib/vatman'
@@ -1,18 +0,0 @@
1
- class TestVatman < Test::Unit::TestCase
2
-
3
- def setup
4
- end
5
-
6
- def test_vatman
7
- v = Vatman.new('GB', 802925148)
8
- assert v.valid?
9
- assert_equal 'MONOCHROME LIMITED', v.name
10
- assert_equal "SUITE K\nTHE PAVILLIONS\n1 WESTERN ROAD\nEPSOM\nSURREY\nKT17 1JG", v.address
11
-
12
- v = Vatman.new('GB', 123456789)
13
- assert !v.valid?
14
-
15
- v = Vatman.new('GB', "abcdefg")
16
- assert !v.valid?
17
- end
18
- end
metadata.gz.sig DELETED
Binary file