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 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