vat-siren-siret 0.1.1 → 1.0.1
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 +4 -4
- data/.travis.yml +0 -1
- data/CHANGELOG.md +42 -0
- data/README.md +2 -4
- data/lib/vat-siren-siret.rb +1 -0
- data/lib/vss.rb +13 -6
- data/vat-siren-siret.gemspec +19 -6
- metadata +19 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af2cb7ca61545eed52b9ee5ed9845025e4b8087b
|
4
|
+
data.tar.gz: fa74bbba8cc0d95afd52915aadb28cef877f5ae9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 265ebb38a93247fe4f8758f81c8b8202b62f0de745ed18b9e2aef4ab95bfbf25f9a1566dda3f5688ff5c4cf5da3735f21d275274fa59489e11478029c688ed78
|
7
|
+
data.tar.gz: a4983a086efdf75c22d72f0ddd743da645336d6e4cfd5202c12640a6f678b70bfdd4512d4b725d63eba97ef12aff8b4b9ca1784ea74fb6e5934732b0c2b26f35
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## [1.0.1] - 2020-03-28
|
8
|
+
|
9
|
+
**breaking changes :**
|
10
|
+
- drop support for ruby 1.9 (incompatible with rake 12.3.3)
|
11
|
+
- to_siren/to_vat returns `nil` (instead of `false`) when input string is neither a VAT / SIREN / SIRET
|
12
|
+
- format_siren/format_siret/format_vat returns `nil` (instead of raising an error) when input string is neither a VAT / SIREN / SIRET
|
13
|
+
|
14
|
+
### Added
|
15
|
+
- gem can be required with "require 'vat-siren-siret'"
|
16
|
+
- This CHANGELOG file to hopefully serve as an evolving example of a
|
17
|
+
standardized open source project CHANGELOG.
|
18
|
+
|
19
|
+
### Changed
|
20
|
+
- update rake (to fix CVE-2020-8130)
|
21
|
+
- to_siren/to_vat returns `nil` (instead of `false`) when input string is neither a VAT / SIREN / SIRET
|
22
|
+
- format_siren/format_siret/format_vat returns `nil` (instead of raising an error) when input string is neither a VAT / SIREN / SIRET
|
23
|
+
|
24
|
+
### Removed
|
25
|
+
- support for ruby 1.9
|
26
|
+
|
27
|
+
## [0.1.1] - 2018-02-11
|
28
|
+
### Changed
|
29
|
+
- rubygems description
|
30
|
+
|
31
|
+
## [0.1.0] - 2018-02-08
|
32
|
+
### Added
|
33
|
+
- API : Vss namespace with all methods
|
34
|
+
(siren?, siret?, vat?, to_siren, to_vat,
|
35
|
+
generate_siren, generate_siret, generate_vat,
|
36
|
+
format_siren, format_siret, format_vat)
|
37
|
+
- unit tests
|
38
|
+
|
39
|
+
[1.0.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.1.1...v1.0.1
|
40
|
+
|
41
|
+
[0.1.1]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.1.0...v0.1.1
|
42
|
+
[0.1.0]: https://github.com/olivierlacan/keep-a-changelog/releases/tag/v0.1.0
|
data/README.md
CHANGED
@@ -68,14 +68,12 @@ Evaluate if the `value` is a french VAT and return a `boolean`.
|
|
68
68
|
### Vss.to_vat(value)
|
69
69
|
|
70
70
|
Generate the french VAT from a SIREN or a SIRET and return a `string`
|
71
|
-
Return `
|
72
|
-
Return `value` if it already is a VAT.
|
71
|
+
Return `nil` when value is neither a SIREN, SIRET or VAT.
|
73
72
|
|
74
73
|
### Vss.to_siren(value)
|
75
74
|
|
76
75
|
Generate the SIREN from a VAT or a SIRET and return a `string`
|
77
|
-
Return `
|
78
|
-
Return `value` if it already is a SIREN.
|
76
|
+
Return `nil` when value is neither a SIREN, SIRET or VAT.
|
79
77
|
|
80
78
|
### Vss.generate_siren
|
81
79
|
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'vss'
|
data/lib/vss.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# French VAT / SIRET / SIREN numbers validation and generation as described here:
|
2
2
|
# https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27identification_du_r%C3%A9pertoire_des_%C3%A9tablissements#Calcul_et_validit.C3.A9_d.27un_num.C3.A9ro_SIRET
|
3
3
|
module Vss
|
4
|
-
VERSION = '0.1
|
4
|
+
VERSION = '1.0.1'.freeze
|
5
5
|
|
6
6
|
REGEXPS = {
|
7
7
|
SIREN: /^\d{9}$/,
|
@@ -32,14 +32,17 @@ module Vss
|
|
32
32
|
return string if siren?(string)
|
33
33
|
return string[0..8] if siret?(string)
|
34
34
|
return string[4..-1] if vat?(string)
|
35
|
-
|
35
|
+
|
36
|
+
nil
|
36
37
|
end
|
37
38
|
|
38
39
|
# Convert a SIREN / SIRET / VAT to a VAT
|
39
40
|
def self.to_vat(string)
|
40
41
|
return string if vat?(string)
|
42
|
+
|
41
43
|
siren = siret?(string) ? to_siren(string) : string
|
42
|
-
return
|
44
|
+
return unless siren?(siren)
|
45
|
+
|
43
46
|
key = vat_key(siren)
|
44
47
|
"FR#{format('%02d', key)}#{siren}"
|
45
48
|
end
|
@@ -57,17 +60,20 @@ module Vss
|
|
57
60
|
end
|
58
61
|
|
59
62
|
def self.format_siren(siren)
|
60
|
-
|
63
|
+
return unless siren?(siren)
|
64
|
+
|
61
65
|
siren.gsub(REGEXPS[:formatSIREN], '\1 ')
|
62
66
|
end
|
63
67
|
|
64
68
|
def self.format_siret(siret)
|
65
|
-
|
69
|
+
return unless siret?(siret)
|
70
|
+
|
66
71
|
siret.gsub(REGEXPS[:formatSIRET], '\1 \2 \3 \4')
|
67
72
|
end
|
68
73
|
|
69
74
|
def self.format_vat(vat)
|
70
|
-
|
75
|
+
return unless vat?(vat)
|
76
|
+
|
71
77
|
vat.gsub(REGEXPS[:formatVAT], '\1 \2 \3 \4 \5')
|
72
78
|
end
|
73
79
|
|
@@ -75,6 +81,7 @@ module Vss
|
|
75
81
|
|
76
82
|
def self.match?(re, str) # :nodoc:
|
77
83
|
return re.match?(str) if re.respond_to?(:match?) # ruby >= 2.4
|
84
|
+
|
78
85
|
!(re =~ str).nil?
|
79
86
|
end
|
80
87
|
|
data/vat-siren-siret.gemspec
CHANGED
@@ -6,22 +6,35 @@ Gem::Specification.new do |spec|
|
|
6
6
|
spec.name = 'vat-siren-siret'
|
7
7
|
spec.version = Vss::VERSION
|
8
8
|
spec.authors = ['MathieuDerelle']
|
9
|
-
spec.email = ['mathieu@
|
9
|
+
spec.email = ['mathieu.derelle@gmail.com']
|
10
10
|
|
11
|
-
spec.summary = 'Library to check or generate french VAT /
|
12
|
-
spec.description = 'Library to check or generate french VAT /
|
11
|
+
spec.summary = 'Library to check or generate french VAT / SIREN / SIRET'
|
12
|
+
spec.description = 'Library to check or generate french VAT / SIREN / SIRET'
|
13
13
|
spec.homepage = 'https://github.com/MathieuDerelle/vat-siren-siret'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
17
|
f.match(%r{^(test|spec|features)/})
|
18
18
|
end
|
19
|
-
spec.bindir = '
|
20
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
|
+
spec.bindir = 'bin'
|
20
|
+
# spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ['lib']
|
22
22
|
|
23
|
+
spec.extra_rdoc_files = ['README.md']
|
24
|
+
|
25
|
+
spec.metadata = {
|
26
|
+
'documentation_uri' => 'http://www.rubydoc.info/gems/vat-siren-siret/',
|
27
|
+
'source_code_uri' => 'https://github.com/MathieuDerelle/vat-siren-siret',
|
28
|
+
# 'wiki_uri' => 'https://github.com/MathieuDerelle/vat-siren-siret/wiki',
|
29
|
+
# 'changelog_uri' => 'https://github.com/MathieuDerelle/vat-siren-siret/CHANGELOG.md',
|
30
|
+
'ci_uri' => 'https://travis-ci.org/MathieuDerelle/vat-siren-siret',
|
31
|
+
'coverage_uri' => 'https://coveralls.io/github/MathieuDerelle/vat-siren-siret',
|
32
|
+
}
|
33
|
+
|
34
|
+
spec.required_ruby_version = '>= 2.0'
|
35
|
+
|
23
36
|
spec.add_development_dependency 'bundler', '~> 1.15'
|
24
|
-
spec.add_development_dependency 'rake', '~>
|
37
|
+
spec.add_development_dependency 'rake', '~> 12.3.3'
|
25
38
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
26
39
|
spec.add_development_dependency 'rubocop'
|
27
40
|
spec.add_development_dependency 'coveralls'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vat-siren-siret
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MathieuDerelle
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 12.3.3
|
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:
|
40
|
+
version: 12.3.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,30 +80,37 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
description: Library to check or generate french VAT /
|
83
|
+
description: Library to check or generate french VAT / SIREN / SIRET
|
84
84
|
email:
|
85
|
-
- mathieu@
|
85
|
+
- mathieu.derelle@gmail.com
|
86
86
|
executables: []
|
87
87
|
extensions: []
|
88
|
-
extra_rdoc_files:
|
88
|
+
extra_rdoc_files:
|
89
|
+
- README.md
|
89
90
|
files:
|
90
91
|
- ".gitignore"
|
91
92
|
- ".rspec"
|
92
93
|
- ".rubocop.yml"
|
93
94
|
- ".travis.yml"
|
95
|
+
- CHANGELOG.md
|
94
96
|
- Gemfile
|
95
97
|
- LICENSE.txt
|
96
98
|
- README.md
|
97
99
|
- Rakefile
|
98
100
|
- bin/console
|
99
101
|
- bin/setup
|
102
|
+
- lib/vat-siren-siret.rb
|
100
103
|
- lib/vat/siren/siret.rb
|
101
104
|
- lib/vss.rb
|
102
105
|
- vat-siren-siret.gemspec
|
103
106
|
homepage: https://github.com/MathieuDerelle/vat-siren-siret
|
104
107
|
licenses:
|
105
108
|
- MIT
|
106
|
-
metadata:
|
109
|
+
metadata:
|
110
|
+
documentation_uri: http://www.rubydoc.info/gems/vat-siren-siret/
|
111
|
+
source_code_uri: https://github.com/MathieuDerelle/vat-siren-siret
|
112
|
+
ci_uri: https://travis-ci.org/MathieuDerelle/vat-siren-siret
|
113
|
+
coverage_uri: https://coveralls.io/github/MathieuDerelle/vat-siren-siret
|
107
114
|
post_install_message:
|
108
115
|
rdoc_options: []
|
109
116
|
require_paths:
|
@@ -112,7 +119,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
112
119
|
requirements:
|
113
120
|
- - ">="
|
114
121
|
- !ruby/object:Gem::Version
|
115
|
-
version: '0'
|
122
|
+
version: '2.0'
|
116
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
124
|
requirements:
|
118
125
|
- - ">="
|
@@ -120,8 +127,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
127
|
version: '0'
|
121
128
|
requirements: []
|
122
129
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.4.
|
130
|
+
rubygems_version: 2.4.8
|
124
131
|
signing_key:
|
125
132
|
specification_version: 4
|
126
|
-
summary: Library to check or generate french VAT /
|
133
|
+
summary: Library to check or generate french VAT / SIREN / SIRET
|
127
134
|
test_files: []
|