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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 15ed1a738f33941419c927c4c786b431a194e2fc
4
- data.tar.gz: 27605ec63ae1d469f7f4c86a6f223cfc81392598
2
+ SHA256:
3
+ metadata.gz: 8b2accd872e2b2873e790e1ee07bbf83286e753d74df5c92355d3e3a8a373094
4
+ data.tar.gz: c914a1dddf12dc5d5e0b0615a843d0c83ea0ab099ddbb392fd43548480d1e600
5
5
  SHA512:
6
- metadata.gz: 9933d97d992e924ae81e3dc5774fb32f23d670ab63ea95ca70bc0babdd4ec37261c69bd32601ef382abaa696786c14d4a9762d0213a6f689939bfc8f2ba29c93
7
- data.tar.gz: 03dd3358207ab30cd8d4c4bd4cd879563fd23708dc17472db342b539f844fa486d8962e8e5007eed521b004ffc35f2aedabcc466e37910888e077866d50cf100
6
+ metadata.gz: f6aeebe56416eceb247ae8ee75fc79d701933eb550e407285f3c04331071e8f81b36a12b6ae7b36dddc29a81ecfa952fa16d3d2d6723c65558eeeafbc10a5ebb
7
+ data.tar.gz: 20ac2d0f7f5cc91fa7cd9d331d0c13e895402dac5bd1880b3519f729387221b7af16e6882af5ec6d8a27ecc168f4c41a227130b27d100088dafcad512353b3d5
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.1
2
+ TargetRubyVersion: 2.4
3
3
  Exclude:
4
4
  - spec/**/*
5
5
 
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, and awesomely! This gem is actively being developed. **Be sure to check the branch for the version you're using.**
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
- TODO
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
- TODO
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
- TODO
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 Teamleader GEM is released under the MIT License.
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 = Vatlayer.configuration.access_key, https: Vatlayer.configuration.https)
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(' ').join('_')] = if v.is_a?(String)
37
- v.tr("\n", ' ')
38
- elsif v.is_a?(Hash)
39
- prepare_elements(v)
40
- else
41
- v
42
- end
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
- self.class.class_eval { attr_accessor :"#{key}" }
11
- generate_methods(key, value)
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
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Vatlayer
4
- VERSION = '0.3.0'.freeze
4
+ VERSION = '0.3.6'
5
5
  end
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', '~> 3.3.0'
22
+ spec.add_dependency 'http', '~> 4.2'
23
23
 
24
- spec.add_development_dependency 'bundler', '~> 1.16'
24
+ spec.add_development_dependency 'bundler', '~> 2.1'
25
25
  spec.add_development_dependency 'codecov'
26
- spec.add_development_dependency 'rake', '~> 10.0'
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.1'
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.0
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: 2018-05-15 00:00:00.000000000 Z
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: 3.3.0
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: 3.3.0
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.16'
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.16'
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: '10.0'
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: '10.0'
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.1'
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.13
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