vatlayer 0.3.0 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
[](https://travis-ci.org/drEnilight/vatlayer-ruby) [](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
|