europe 0.0.20 → 0.0.22

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
2
  SHA256:
3
- metadata.gz: 55a8a248cfae6ade9980da4ea2e6b47938c5aa75c8936c8f010e35a50b6f2b86
4
- data.tar.gz: 23920666bd00770ab722cfb8d6edc5e17b416f9d6d81c8ecb1ebfc9112d65338
3
+ metadata.gz: 74ac3245cc45575b18122cc8373d545d3f303cf0d0e5664e8e629c6d99bd1411
4
+ data.tar.gz: 81ac5481c954e26268c4c240f4b38b97221795061274a757a7ddf9fbae564fa9
5
5
  SHA512:
6
- metadata.gz: cd703d1d1d8e534dc8ad46bb1051aa2cfe871e807215c0a417286bac7d23814bf7aba5d0f8f4bdb49fb88f1ed49992f5b6e24a30416c0f769f06d051970b9c78
7
- data.tar.gz: ce9d7fd212fb5905a71598ab7545eb3ad80823a095e97af46101426c214ec592e3d4eacaf429bfaa21a7f2417072a5154c2e97a2b024f642d4fe9a346322f967
6
+ metadata.gz: 0fd626a93c2978c7a42f6525a9660225c4e964c68465d3f48c8652c7e7ef83c33b2442fa3c5176c279276569627a92cb48579863ee5ace1966efd92005554b74
7
+ data.tar.gz: be952232e6468c93da55da187798316e6aab704cd4375dddced8719c6ee1af898f91ebafe87d5c9092cabf85ad101312248b777f54a44153126d86255ddf24e6
data/.rubocop.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  AllCops:
2
2
  NewCops: enable
3
- TargetRubyVersion: 3.1
3
+ TargetRubyVersion: 3.2
4
4
  SuggestExtensions: false
5
5
  Exclude:
6
6
  - 'europe.gemspec'
data/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file.
3
3
  This project adheres to [Semantic Versioning](http://semver.org/).
4
+ ## 0.0.22
5
+ - Updated Estonia's tax rate to 22%
6
+ - [Full Changelog](https://github.com/gem-shards/europe.rb/compare/v0.0.21...v0.0.22)
7
+ ## 0.0.21
8
+ - Added check to fail short VAT numbers under 5 characters
9
+ - [Full Changelog](https://github.com/gem-shards/europe.rb/compare/v0.0.20...v0.0.21)
4
10
  ## 0.0.20
5
11
  - Added fallback VAT rates in case the EU website is down or unresponsive
6
12
  - [Full Changelog](https://github.com/gem-shards/europe.rb/compare/v0.0.19...v0.0.20)
@@ -7,7 +7,7 @@ module Europe
7
7
  # Rates
8
8
  module Rates
9
9
  FALLBACK_RATES = {
10
- AT: 20.0, BE: 21.0, BG: 20.0, CY: 19.0, CZ: 21.0, DE: 19.0, DK: 25.0, EE: 20.0,
10
+ AT: 20.0, BE: 21.0, BG: 20.0, CY: 19.0, CZ: 21.0, DE: 19.0, DK: 25.0, EE: 22.0,
11
11
  EL: 24.0, ES: 21.0, FI: 24.0, FR: 20.0, UK: 20.0, HR: 25.0, HU: 27.0, IE: 23.0,
12
12
  IT: 22.0, LT: 21.0, LU: 17.0, LV: 21.0, MT: 18.0, NL: 21.0, PL: 23.0, PT: 23.0,
13
13
  RO: 19.0, SE: 25.0, SI: 22.0, SK: 20.0
@@ -33,6 +33,8 @@ module Europe
33
33
  XML
34
34
 
35
35
  def self.validate(number)
36
+ return :failed if number.size < 4
37
+
36
38
  response = send_request(number[0..1], number[2..-1])
37
39
  return :failed unless response.is_a? Net::HTTPSuccess
38
40
  return :failed if response.body.include?('soap:Fault')
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Europe version
4
4
  module Europe
5
- VERSION = '0.0.20'
5
+ VERSION = '0.0.22'
6
6
  end
@@ -62,15 +62,15 @@ module Europe
62
62
  def check_character_and_digit(number)
63
63
  assert_equal true, Europe::Vat::Format.validate(
64
64
  number[0..1] +
65
- number[2..-1].gsub(/X/, [*('A'..'Z'), *('0'..'9')].sample)
65
+ number[2..-1].gsub('X', [*('A'..'Z'), *('0'..'9')].sample)
66
66
  )
67
67
  end
68
68
 
69
69
  def check_integer(number)
70
70
  {
71
- number[0..1] + number[2..-1].gsub(/9/, [*('0'..'9')].sample) => true,
72
- number.gsub(/9/, rand(10).to_s) => true,
73
- number.gsub(/9/, [*('A'..'Z')].sample(1).join) => false
71
+ number[0..1] + number[2..-1].gsub('9', [*('0'..'9')].sample) => true,
72
+ number.gsub('9', rand(10).to_s) => true,
73
+ number.gsub('9', [*('A'..'Z')].sample(1).join) => false
74
74
  }.each do |key, value|
75
75
  assert_equal value, Europe::Vat::Format.validate(key)
76
76
  end
@@ -78,10 +78,10 @@ module Europe
78
78
 
79
79
  def check_alphanumeric(number)
80
80
  assert_equal true, Europe::Vat::Format.validate(
81
- number[0..1] + number[2..-1].gsub(/L/, [*('A'..'Z')].sample)
81
+ number[0..1] + number[2..-1].gsub('L', [*('A'..'Z')].sample)
82
82
  )
83
83
  assert_equal false, Europe::Vat::Format.validate(
84
- number[0..1] + number[2..-1].gsub(/L/, [*('0'..'9')].sample)
84
+ number[0..1] + number[2..-1].gsub('L', [*('0'..'9')].sample)
85
85
  )
86
86
  end
87
87
 
@@ -12,6 +12,10 @@ module Europe
12
12
  WebMock.disable!
13
13
  end
14
14
 
15
+ def test_validation_of_short_vat_number
16
+ assert_equal :failed, Europe::Vat.validate('6')
17
+ end
18
+
15
19
  def test_validation_of_false_vat_number
16
20
  validate_false_vat = Europe::Vat.validate('NL123456789B01')
17
21
  assert_equal false, validate_false_vat[:valid]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: europe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.20
4
+ version: 0.0.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gem shards
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-03 00:00:00.000000000 Z
11
+ date: 2024-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug