codice-fiscale 0.0.9 → 1.0.0
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 +5 -5
- data/.travis.yml +12 -0
- data/Guardfile +63 -26
- data/README.md +42 -33
- data/Rakefile +4 -0
- data/codice_fiscale.gemspec +4 -5
- data/lib/codice_fiscale.rb +79 -0
- data/lib/codice_fiscale/codes.rb +3 -3
- data/lib/codice_fiscale/codes/city_codes.csv +7914 -1
- data/lib/codice_fiscale/codes/country_codes.csv +216 -1
- data/lib/codice_fiscale/version.rb +1 -1
- data/spec/lib/codice_fiscale/alphabet_spec.rb +16 -8
- data/spec/lib/codice_fiscale/codes_spec.rb +7 -3
- data/spec/lib/codice_fiscale/fiscal_code_spec.rb +39 -23
- data/spec/lib/codice_fiscale/italian_citizen_spec.rb +8 -8
- data/spec/lib/codice_fiscale_spec.rb +16 -7
- data/spec/spec_helper.rb +0 -2
- metadata +19 -25
- data/spec/fixtures/city_codes.csv +0 -1
- data/spec/fixtures/country_codes.csv +0 -1
- data/spec/lib/codice_fiscale/helpers_spec.rb +0 -4
@@ -9,11 +9,11 @@ describe CodiceFiscale::ItalianCitizen do
|
|
9
9
|
|
10
10
|
describe '#initialize' do
|
11
11
|
it 'accepts 1 attribute' do
|
12
|
-
|
12
|
+
expect { marco }.not_to raise_error
|
13
13
|
end
|
14
14
|
|
15
15
|
it 'do not accepts 0 attribute' do
|
16
|
-
|
16
|
+
expect { described_class.new }.to raise_error(ArgumentError)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -21,8 +21,8 @@ describe CodiceFiscale::ItalianCitizen do
|
|
21
21
|
describe '#validations' do
|
22
22
|
describe 'when all attributes are valid' do
|
23
23
|
it 'is valid' do
|
24
|
-
marco.
|
25
|
-
john.
|
24
|
+
expect(marco).to be_valid
|
25
|
+
expect(john).to be_valid
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -31,7 +31,7 @@ describe CodiceFiscale::ItalianCitizen do
|
|
31
31
|
|
32
32
|
it 'is not valid' do
|
33
33
|
citizen_without_name.valid?
|
34
|
-
citizen_without_name.errors[:name].
|
34
|
+
expect(citizen_without_name.errors[:name]).not_to be_empty
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -40,7 +40,7 @@ describe CodiceFiscale::ItalianCitizen do
|
|
40
40
|
|
41
41
|
it 'is not valid' do
|
42
42
|
citizen_with_strange_gender.valid?
|
43
|
-
citizen_with_strange_gender.errors[:gender].
|
43
|
+
expect(citizen_with_strange_gender.errors[:gender]).not_to be_empty
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
@@ -49,7 +49,7 @@ describe CodiceFiscale::ItalianCitizen do
|
|
49
49
|
|
50
50
|
it 'is not valid' do
|
51
51
|
citizen_with_invalid_province.valid?
|
52
|
-
citizen_with_invalid_province.errors[:province_code].
|
52
|
+
expect(citizen_with_invalid_province.errors[:province_code]).not_to be_empty
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
@@ -58,7 +58,7 @@ describe CodiceFiscale::ItalianCitizen do
|
|
58
58
|
|
59
59
|
it 'is not valid' do
|
60
60
|
citizen_with_invalid_date.valid?
|
61
|
-
citizen_with_invalid_date.errors[:birthdate].
|
61
|
+
expect(citizen_with_invalid_date.errors[:birthdate]).not_to be_empty
|
62
62
|
end
|
63
63
|
end
|
64
64
|
end
|
@@ -1,25 +1,34 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
describe CodiceFiscale do
|
4
5
|
describe '#calculate' do
|
5
|
-
let(:mario_attributes) { {:name => 'mario', :surname => 'rossi', :gender => :male, :birthdate => Date.new(1987, 1, 1),
|
6
|
-
:province_code => 'lc', :city_name => 'Abbadia Lariana'} }
|
7
|
-
|
8
6
|
before do
|
9
7
|
subject.config.city_code = nil
|
10
8
|
subject.config.country_code = nil
|
11
9
|
end
|
12
10
|
|
13
11
|
it 'returns the expected code' do
|
14
|
-
|
12
|
+
# Please note that the following are completely made-up data
|
13
|
+
[
|
14
|
+
[{:name => 'mario', :surname => 'rossi', :gender => :male, :birthdate => Date.new(1987, 1, 1), :province_code => 'lc', :city_name => 'Abbadia Lariana'}, "RSSMRA87A01A005V"],
|
15
|
+
[{:name => "Marco", :surname => "Rossi", :gender => :male, :birthdate => Date.new(1983, 5, 3), :city_name => "Oggiono", :province_code => "LC"}, "RSSMRC83E03G009W"],
|
16
|
+
[{:name => "John", :surname => "Smith", :gender => :male, :birthdate => Date.new(1988, 5, 3), :country_name => "Francia"}, "SMTJHN88E03Z110R"],
|
17
|
+
[{:name => "John", :surname => "Smith", :gender => :male, :birthdate => Date.new(1988, 5, 3), :country_name => "France"}, "SMTJHN88E03Z110R"],
|
18
|
+
[{:name => "John", :surname => "Smith", :gender => :male, :birthdate => Date.new(1988, 5, 3), :country_name => "Sao Tomé e Principe"}, "SMTJHN88E03Z341A"],
|
19
|
+
[{:name => "Marco", :surname => "Rossi", :gender => :male, :birthdate => Date.new(1983, 5, 3), :city_name => "Forlì", :province_code =>"FC"}, "RSSMRC83E03D704X"],
|
20
|
+
].each do |row|
|
21
|
+
params, expected_code = row[0], row[1]
|
22
|
+
expect(subject.calculate(params)).to eq expected_code
|
23
|
+
end
|
15
24
|
end
|
16
25
|
|
17
26
|
context 'when params are not valid' do
|
18
|
-
let(:invalid_attributes) {
|
27
|
+
let(:invalid_attributes) { {:name => ''} }
|
19
28
|
|
20
29
|
it 'raises an error' do
|
21
|
-
|
30
|
+
expect { subject.calculate(invalid_attributes) }.to raise_error(ArgumentError)
|
22
31
|
end
|
23
32
|
end
|
24
33
|
end
|
25
|
-
end
|
34
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codice-fiscale
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- topac
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-06-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: rake
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -39,33 +39,33 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: guard-rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rb-fsevent
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 0.9.1
|
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:
|
68
|
+
version: 0.9.1
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: activesupport
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,7 +94,7 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
-
description: Calculate the
|
97
|
+
description: Calculate the Italian Tax ID (Codice Fiscale)
|
98
98
|
email:
|
99
99
|
- dani.m.mobile@gmail.com
|
100
100
|
executables: []
|
@@ -102,6 +102,7 @@ extensions: []
|
|
102
102
|
extra_rdoc_files: []
|
103
103
|
files:
|
104
104
|
- ".gitignore"
|
105
|
+
- ".travis.yml"
|
105
106
|
- Gemfile
|
106
107
|
- Guardfile
|
107
108
|
- LICENSE
|
@@ -118,16 +119,13 @@ files:
|
|
118
119
|
- lib/codice_fiscale/helpers.rb
|
119
120
|
- lib/codice_fiscale/italian_citizen.rb
|
120
121
|
- lib/codice_fiscale/version.rb
|
121
|
-
- spec/fixtures/city_codes.csv
|
122
|
-
- spec/fixtures/country_codes.csv
|
123
122
|
- spec/lib/codice_fiscale/alphabet_spec.rb
|
124
123
|
- spec/lib/codice_fiscale/codes_spec.rb
|
125
124
|
- spec/lib/codice_fiscale/fiscal_code_spec.rb
|
126
|
-
- spec/lib/codice_fiscale/helpers_spec.rb
|
127
125
|
- spec/lib/codice_fiscale/italian_citizen_spec.rb
|
128
126
|
- spec/lib/codice_fiscale_spec.rb
|
129
127
|
- spec/spec_helper.rb
|
130
|
-
homepage: https://github.com/
|
128
|
+
homepage: https://github.com/topac/codice_fiscale
|
131
129
|
licenses: []
|
132
130
|
metadata: {}
|
133
131
|
post_install_message:
|
@@ -145,18 +143,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
145
143
|
- !ruby/object:Gem::Version
|
146
144
|
version: '0'
|
147
145
|
requirements: []
|
148
|
-
|
149
|
-
rubygems_version: 2.6.12
|
146
|
+
rubygems_version: 3.0.3
|
150
147
|
signing_key:
|
151
148
|
specification_version: 4
|
152
|
-
summary: Calculate the
|
149
|
+
summary: Calculate the Italian Tax ID (Codice Fiscale)
|
153
150
|
test_files:
|
154
|
-
- spec/fixtures/city_codes.csv
|
155
|
-
- spec/fixtures/country_codes.csv
|
156
151
|
- spec/lib/codice_fiscale/alphabet_spec.rb
|
157
152
|
- spec/lib/codice_fiscale/codes_spec.rb
|
158
153
|
- spec/lib/codice_fiscale/fiscal_code_spec.rb
|
159
|
-
- spec/lib/codice_fiscale/helpers_spec.rb
|
160
154
|
- spec/lib/codice_fiscale/italian_citizen_spec.rb
|
161
155
|
- spec/lib/codice_fiscale_spec.rb
|
162
156
|
- spec/spec_helper.rb
|
@@ -1 +0,0 @@
|
|
1
|
-
CODICE NAZIONALE,CODICE CATASTALE BELFIORE aggiornato al 1/9/1999 ora non pi in uso,PROVINCIA,DENOMINAZIONE COMUNE,ANNOTAZIONE,VARIAZIONE CODICE NAZAZIONALE,VARIAZIONE CODICE CATASTALE,VARIAZIONE PROVINCIA,VARIAZIONE DENOMINAZIONE DEL COMUNE,DATA COSTITUZIONE,DATA VARIAZIONE
|
@@ -1 +0,0 @@
|
|
1
|
-
CONTIN,SIGLA,DENOMINAZ,CODICE,DATAIST,DATASOP,CODRIF,DATAVARIAZ
|