europe 0.0.20 → 0.0.21

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: a1265263ae93ea1408b778a1bff21d44a913d54f10e034d2eb4f2536ed3e87ce
4
+ data.tar.gz: '079be0aeba6bf84a543b9df49e25d1571b3a8527b3770c176ae3014b3260d809'
5
5
  SHA512:
6
- metadata.gz: cd703d1d1d8e534dc8ad46bb1051aa2cfe871e807215c0a417286bac7d23814bf7aba5d0f8f4bdb49fb88f1ed49992f5b6e24a30416c0f769f06d051970b9c78
7
- data.tar.gz: ce9d7fd212fb5905a71598ab7545eb3ad80823a095e97af46101426c214ec592e3d4eacaf429bfaa21a7f2417072a5154c2e97a2b024f642d4fe9a346322f967
6
+ metadata.gz: fb51a61ff49138ce79b0e3919427967a62b79ece0f8285c3b2074cbb4cb2a960f02d611970991e43784dcb750e09d8708c822840b338cbd41cd3aa1c5df53666
7
+ data.tar.gz: 8c4eda6745c2a60a39e9c38dbb2770a23cf0597764bfab1e57deeac3c2bdbcbf5fe0659c0a96cf023176219808ccab0c91966d4e8454a1f0632f9c91eda61f02
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,9 @@
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.21
5
+ - Added check to fail short VAT numbers under 5 characters
6
+ - [Full Changelog](https://github.com/gem-shards/europe.rb/compare/v0.0.20...v0.0.21)
4
7
  ## 0.0.20
5
8
  - Added fallback VAT rates in case the EU website is down or unresponsive
6
9
  - [Full Changelog](https://github.com/gem-shards/europe.rb/compare/v0.0.19...v0.0.20)
@@ -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.21'
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.21
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-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug