vatlayer 0.3.0 → 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.rubocop.yml +1 -1
- data/README.md +57 -5
- data/lib/vatlayer.rb +1 -1
- data/lib/vatlayer/api.rb +17 -8
- data/lib/vatlayer/response/data.rb +3 -2
- data/lib/vatlayer/version.rb +1 -1
- data/vatlayer.gemspec +4 -4
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8b2accd872e2b2873e790e1ee07bbf83286e753d74df5c92355d3e3a8a373094
|
4
|
+
data.tar.gz: c914a1dddf12dc5d5e0b0615a843d0c83ea0ab099ddbb392fd43548480d1e600
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6aeebe56416eceb247ae8ee75fc79d701933eb550e407285f3c04331071e8f81b36a12b6ae7b36dddc29a81ecfa952fa16d3d2d6723c65558eeeafbc10a5ebb
|
7
|
+
data.tar.gz: 20ac2d0f7f5cc91fa7cd9d331d0c13e895402dac5bd1880b3519f729387221b7af16e6882af5ec6d8a27ecc168f4c41a227130b27d100088dafcad512353b3d5
|
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
[![Build Status](https://travis-ci.org/drEnilight/vatlayer-ruby.svg?branch=master)](https://travis-ci.org/drEnilight/vatlayer-ruby) [![codecov.io](https://codecov.io/github/drEnilight/vatlayer-ruby/coverage.svg?branch=master)](https://codecov.io/gh/drEnilight/vatlayer-ruby?branch=master)
|
4
4
|
|
5
|
-
The Ruby gem for accessing the Vatlayer API painlessly, easily
|
5
|
+
The Ruby gem for accessing the Vatlayer API painlessly, easily and awesomely! **Be sure to check the branch for the version you're using.**
|
6
6
|
|
7
7
|
**Important and helpful links:**
|
8
8
|
|
@@ -76,13 +76,65 @@ vatlayer.validate(vat_number: 'LU26375245')
|
|
76
76
|
```
|
77
77
|
|
78
78
|
#### Rate
|
79
|
-
|
79
|
+
```ruby
|
80
|
+
vatlayer.rate(country_code: 'gb')
|
81
|
+
|
82
|
+
# <Vatlayer::Response::Data:0x000055c949f35210
|
83
|
+
# @success=true,
|
84
|
+
# @country_code="GB",
|
85
|
+
# @country_name="United Kingdom",
|
86
|
+
# @standard_rate=20,
|
87
|
+
# @reduced_rates=#<Vatlayer::Response::Data:0x000055c949f344f0
|
88
|
+
# @property_renovations=5,
|
89
|
+
# @foodstuffs=0,
|
90
|
+
# @books=0,
|
91
|
+
# @pharmaceuticals=0,
|
92
|
+
# @medical=0,
|
93
|
+
# @passenger_transport=0,
|
94
|
+
# @newspapers=0,
|
95
|
+
# @childrens_clothing=0>>
|
96
|
+
```
|
97
|
+
|
98
|
+
Also rate method takes parameters like `ip_address`, `use_client_ip`.
|
80
99
|
|
81
100
|
#### Rate list
|
82
|
-
|
101
|
+
```ruby
|
102
|
+
vatlayer.rate_list
|
103
|
+
|
104
|
+
# <Vatlayer::Response::Data:0x0000564e0063b308
|
105
|
+
# @rates=#<Vatlayer::Response::Data:0x0000564e00639d78
|
106
|
+
# @at=#<Vatlayer::Response::Data:0x0000564e00638b30
|
107
|
+
# @country_name="Austria",
|
108
|
+
# @reduced_rates=#<Vatlayer::Response::Data:0x0000564e0062e270
|
109
|
+
# @admission_to_cultural_events=10,
|
110
|
+
# @admission_to_entertainment_events=10,
|
111
|
+
# @books=10,
|
112
|
+
# @foodstuffs=10,
|
113
|
+
# @hotels=10,
|
114
|
+
# @newspapers=10,
|
115
|
+
# @passenger_transport=10,
|
116
|
+
# @pharmaceuticals=10>,
|
117
|
+
# @standard_rate=20>
|
118
|
+
|
119
|
+
```
|
83
120
|
|
84
121
|
#### Price
|
85
|
-
|
122
|
+
```ruby
|
123
|
+
vatlayer.price(amount: 100, country_code: 'GB', options: { type: 'medical' })
|
124
|
+
|
125
|
+
# <Vatlayer::Response::Data:0x00005564aa23e880
|
126
|
+
# @success=true,
|
127
|
+
# @country_code="GB",
|
128
|
+
# @country_name="United Kingdom",
|
129
|
+
# @price_excl_vat=100,
|
130
|
+
# @price_incl_vat=100,
|
131
|
+
# @type="medical",
|
132
|
+
# @vat_rate=0>
|
133
|
+
|
134
|
+
```
|
135
|
+
|
136
|
+
Also price method takes parameters like `ip_address`, `use_client_ip` and optional parameters `type`, `incl`.
|
137
|
+
|
86
138
|
|
87
139
|
### Fetch errors
|
88
140
|
|
@@ -100,7 +152,7 @@ vatlayer.validate('LU26375245')
|
|
100
152
|
|
101
153
|
|
102
154
|
## License
|
103
|
-
The
|
155
|
+
The Vatlayer GEM is released under the MIT License.
|
104
156
|
|
105
157
|
## Contributing
|
106
158
|
|
data/lib/vatlayer.rb
CHANGED
@@ -16,7 +16,7 @@ module Vatlayer
|
|
16
16
|
yield(configuration)
|
17
17
|
end
|
18
18
|
|
19
|
-
def new(access_key
|
19
|
+
def new(access_key: Vatlayer.configuration.access_key, https: Vatlayer.configuration.https)
|
20
20
|
Api.new(access_key, https)
|
21
21
|
end
|
22
22
|
end
|
data/lib/vatlayer/api.rb
CHANGED
@@ -11,11 +11,20 @@ module Vatlayer
|
|
11
11
|
@https = https
|
12
12
|
end
|
13
13
|
|
14
|
+
def price(amount: nil, country_code: nil, ip_address: nil, use_client_ip: nil, options: {})
|
15
|
+
request('/price', amount: amount, country_code: country_code, ip_address: ip_address,
|
16
|
+
use_client_ip: use_client_ip, type: options[:type], incl: options[:incl])
|
17
|
+
end
|
18
|
+
|
19
|
+
def rate(country_code: nil, ip_address: nil, use_client_ip: nil)
|
20
|
+
request('/rate', country_code: country_code, ip_address: ip_address, use_client_ip: use_client_ip)
|
21
|
+
end
|
22
|
+
|
14
23
|
def rate_list
|
15
24
|
request('/rate_list')
|
16
25
|
end
|
17
26
|
|
18
|
-
def validate(vat_number:)
|
27
|
+
def validate(vat_number: nil)
|
19
28
|
request('/validate', vat_number: vat_number)
|
20
29
|
end
|
21
30
|
|
@@ -33,13 +42,13 @@ module Vatlayer
|
|
33
42
|
|
34
43
|
def prepare_elements(response)
|
35
44
|
response.each_with_object({}) do |(k, v), h|
|
36
|
-
h[k.downcase.split(
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
45
|
+
h[k.downcase.split(/\s|\-/).join('_')] = if v.is_a?(String)
|
46
|
+
v.tr("\n", ' ')
|
47
|
+
elsif v.is_a?(Hash)
|
48
|
+
prepare_elements(v)
|
49
|
+
else
|
50
|
+
v
|
51
|
+
end
|
43
52
|
end
|
44
53
|
end
|
45
54
|
|
@@ -7,8 +7,9 @@ module Vatlayer
|
|
7
7
|
|
8
8
|
def initialize(attributes)
|
9
9
|
attributes.each do |(key, value)|
|
10
|
-
|
11
|
-
|
10
|
+
cleaned_key = key.gsub(/[^0-9A-Za-z_]/, '')
|
11
|
+
self.class.class_eval { attr_accessor :"#{cleaned_key}" }
|
12
|
+
generate_methods(cleaned_key, value)
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
data/lib/vatlayer/version.rb
CHANGED
data/vatlayer.gemspec
CHANGED
@@ -19,12 +19,12 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ['lib']
|
21
21
|
|
22
|
-
spec.add_dependency 'http', '~>
|
22
|
+
spec.add_dependency 'http', '~> 4.2'
|
23
23
|
|
24
|
-
spec.add_development_dependency 'bundler', '~> 1
|
24
|
+
spec.add_development_dependency 'bundler', '~> 2.1'
|
25
25
|
spec.add_development_dependency 'codecov'
|
26
|
-
spec.add_development_dependency 'rake', '
|
26
|
+
spec.add_development_dependency 'rake', '>= 12.3.3'
|
27
27
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
28
28
|
spec.add_development_dependency 'rubocop', '~> 0.54'
|
29
|
-
spec.required_ruby_version = '>= 2.
|
29
|
+
spec.required_ruby_version = '>= 2.4'
|
30
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vatlayer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vlad Romaniuk
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '4.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: '4.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1
|
33
|
+
version: '2.1'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1
|
40
|
+
version: '2.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: codecov
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,16 +56,16 @@ dependencies:
|
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 12.3.3
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 12.3.3
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,7 +129,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
129
129
|
requirements:
|
130
130
|
- - ">="
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: '2.
|
132
|
+
version: '2.4'
|
133
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
135
|
- - ">="
|
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
137
|
version: '0'
|
138
138
|
requirements: []
|
139
139
|
rubyforge_project:
|
140
|
-
rubygems_version: 2.6
|
140
|
+
rubygems_version: 2.7.6
|
141
141
|
signing_key:
|
142
142
|
specification_version: 4
|
143
143
|
summary: A Ruby wrapper around vatlayer.com API
|