steuernummer 1.1.5 → 1.1.7
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/.gitignore +2 -1
- data/Gemfile +0 -0
- data/LICENSE.txt +0 -0
- data/README.md +1 -1
- data/Rakefile +0 -0
- data/lib/steuernummer/tax_table.rb +98 -99
- data/lib/steuernummer/version.rb +1 -1
- data/lib/steuernummer.rb +17 -25
- data/steuernummer.gemspec +23 -16
- data/test/test_steuernummer.rb +1 -1
- metadata +21 -19
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a559ec23b6d0e6baf6c580798ff35d28d295fa435cf87be6ceb791afdad5f819
|
|
4
|
+
data.tar.gz: dec8d8ad6b123b34d0743f860c0ae0c72e11bc0a2b216fe8588fcefd192ba206
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2f7504005a4313eab14c32c18291e69db52645eca5b5c0e706246a6fb373191ee39844c70121652affde2ff96fbb83945b188745c629939c3fd52774b0d62814
|
|
7
|
+
data.tar.gz: 1d883282694864795876d909f02abc6e54d90bde59f06af2c2bf4a08fe8719c2861cf7a7936e9fd583b8666f2010b79717e7271be0348c670ace0b95a1706f93
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
|
File without changes
|
data/LICENSE.txt
CHANGED
|
File without changes
|
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Steuernummer is a very simple Gem that uses regex to validate all german tax numbers (or steuernummer).
|
|
4
4
|
It is able to generate a country wide code, and find the region where the steuernummer comes from.
|
|
5
|
-
Data is based on:
|
|
5
|
+
Data is based on: https://de.wikipedia.org/wiki/Steuernummer
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
## Installation
|
data/Rakefile
CHANGED
|
File without changes
|
|
@@ -2,105 +2,104 @@
|
|
|
2
2
|
|
|
3
3
|
class Steuernummer::TaxTable
|
|
4
4
|
# Puts all possible German tax regions in an data object.
|
|
5
|
-
# All values are based on:
|
|
5
|
+
# All values are based on: https://de.wikipedia.org/wiki/Steuernummer
|
|
6
6
|
# To keep it a bit readible the variable names are kept the same as
|
|
7
7
|
# in the wikipedia entry.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
end
|
|
8
|
+
def self.tax_rules
|
|
9
|
+
[{ :region => "Baden-Württemberg",
|
|
10
|
+
:match_pattern_region => /\A(?<ff>\d{2})(?<bbb>\d{3})[\/](?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
11
|
+
:match_pattern_country => /\A28(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
12
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "#{ff}#{bbb}/#{uuuu}#{p}" },
|
|
13
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "28#{ff}0#{bbb}#{uuuu}#{p}" } },
|
|
14
|
+
|
|
15
|
+
{ :region => "Bayern",
|
|
16
|
+
:match_pattern_region => /\A(?<fff>\d{3})[\/](?<bbb>\d{3})[\/](?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
17
|
+
:match_pattern_country => /\A9(?<fff>\d{3})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
18
|
+
:to_region_wide => lambda { |fff, bbb, uuuu, p| "#{fff}/#{bbb}/#{uuuu}#{p}" },
|
|
19
|
+
:to_country_wide => lambda { |fff, bbb, uuuu, p| "9#{fff}0#{bbb}#{uuuu}#{p}" } },
|
|
20
|
+
|
|
21
|
+
{ :region => "Berlin",
|
|
22
|
+
:match_pattern_region => /\A(?<ff>\d{2})[\/](?<bbb>\d{3})[\/](?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
23
|
+
:match_pattern_country => /\A11(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
24
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "#{ff}/#{bbb}/#{uuuu}#{p}" },
|
|
25
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "11#{ff}0#{bbb}#{uuuu}#{p}" } },
|
|
26
|
+
|
|
27
|
+
{ :region => "Brandenburg",
|
|
28
|
+
:match_pattern_region => /\A0(?<ff>\d{2})[\/](?<bbb>\d{3})[\/](?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
29
|
+
:match_pattern_country => /\A30(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
30
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "0#{ff}/#{bbb}/#{uuuu}#{p}" },
|
|
31
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "30#{ff}0#{bbb}#{uuuu}#{p}" } },
|
|
32
|
+
|
|
33
|
+
{ :region => "Bremen",
|
|
34
|
+
:match_pattern_region => /\A(?<ff>\d{2})\s(?<bbb>\d{3})\s(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
35
|
+
:match_pattern_country => /\A24(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
36
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "#{ff} #{bbb} #{uuuu}#{p}" },
|
|
37
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "24#{ff}0#{bbb}#{uuuu}#{p}" } },
|
|
38
|
+
|
|
39
|
+
{ :region => "Hamburg",
|
|
40
|
+
:match_pattern_region => /\A(?<ff>\d{2})[\/](?<bbb>\d{3})[\/](?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
41
|
+
:match_pattern_country => /\A22(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
42
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "#{ff}/#{bbb}/#{uuuu}#{p}" },
|
|
43
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "22#{ff}0#{bbb}#{uuuu}#{p}" } },
|
|
44
|
+
|
|
45
|
+
{ :region => "Hessen",
|
|
46
|
+
:match_pattern_region => /\A0(?<ff>\d{2})\s(?<bbb>\d{3})\s(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
47
|
+
:match_pattern_country => /\A26(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
48
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "0#{ff} #{bbb} #{uuuu}#{p}" },
|
|
49
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "26#{ff}0#{bbb}#{uuuu}#{p}" } },
|
|
50
|
+
|
|
51
|
+
{ :region => "Mecklenburg-Vorpommern",
|
|
52
|
+
:match_pattern_region => /\A0(?<ff>\d{2})[\/](?<bbb>\d{3})[\/](?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
53
|
+
:match_pattern_country => /\A40(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
54
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "0#{ff}/#{bbb}/#{uuuu}#{p}" },
|
|
55
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "40#{ff}0#{bbb}#{uuuu}#{p}" } },
|
|
56
|
+
|
|
57
|
+
{ :region => "Niedersachsen",
|
|
58
|
+
:match_pattern_region => /\A(?<ff>\d{2})[\/](?<bbb>\d{3})[\/](?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
59
|
+
:match_pattern_country => /\A23(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
60
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "#{ff}/#{bbb}/#{uuuu}#{p}" },
|
|
61
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "23#{ff}0#{bbb}#{uuuu}#{p}" } },
|
|
62
|
+
|
|
63
|
+
{ :region => "Nordrhein-Westfalen",
|
|
64
|
+
:match_pattern_region => /\A(?<fff>\d{3})[\/](?<bbbb>\d{4})[\/](?<uuu>\d{3})(?<p>\d{1})\z/,
|
|
65
|
+
:match_pattern_country => /\A5(?<fff>\d{3})0(?<bbbb>\d{4})(?<uuu>\d{3})(?<p>\d{1})\z/,
|
|
66
|
+
:to_region_wide => lambda { |fff, bbbb, uuu, p| "#{fff}/#{bbbb}/#{uuu}#{p}" },
|
|
67
|
+
:to_country_wide => lambda { |fff, bbbb, uuu, p| "5#{fff}0#{bbbb}#{uuu}#{p}" } },
|
|
68
|
+
|
|
69
|
+
{ :region => "Rheinland-Pfalz",
|
|
70
|
+
:match_pattern_region => /\A(?<ff>\d{2})[\/](?<bbb>\d{3})[\/](?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
71
|
+
:match_pattern_country => /\A27(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
72
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "#{ff}/#{bbb}/#{uuuu}#{p}" },
|
|
73
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "27#{ff}0#{bbb}#{uuuu}#{p}" } },
|
|
74
|
+
|
|
75
|
+
{ :region => "Saarland",
|
|
76
|
+
:match_pattern_region => /\A0(?<ff>\d{2})[\/](?<bbb>\d{3})[\/](?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
77
|
+
:match_pattern_country => /\A10(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
78
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "0#{ff}/#{bbb}/#{uuuu}#{p}" },
|
|
79
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "10#{ff}0#{bbb}#{uuuu}#{p}" } },
|
|
80
|
+
|
|
81
|
+
{ :region => "Sachsen",
|
|
82
|
+
:match_pattern_region => /\A2(?<ff>\d{2})[\/](?<bbb>\d{3})[\/](?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
83
|
+
:match_pattern_country => /\A32(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
84
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "2#{ff}/#{bbb}/#{uuuu}#{p}" },
|
|
85
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "32#{ff}0#{bbb}#{uuuu}#{p}" } },
|
|
86
|
+
|
|
87
|
+
{ :region => "Sachsen-Anhalt",
|
|
88
|
+
:match_pattern_region => /\A1(?<ff>\d{2})[\/](?<bbb>\d{3})[\/](?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
89
|
+
:match_pattern_country => /\A31(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
90
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "1#{ff}/#{bbb}/#{uuuu}#{p}" },
|
|
91
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "31#{ff}0#{bbb}#{uuuu}#{p}" } },
|
|
92
|
+
|
|
93
|
+
{ :region => "Schleswig-Holstein",
|
|
94
|
+
:match_pattern_region => /\A(?<ff>\d{2})[\/](?<bbb>\d{3})[\/](?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
95
|
+
:match_pattern_country => /\A21(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
96
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "#{ff}/#{bbb}/#{uuuu}#{p}" },
|
|
97
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "21#{ff}0#{bbb}#{uuuu}#{p}" } },
|
|
98
|
+
|
|
99
|
+
{ :region => "Thüringen",
|
|
100
|
+
:match_pattern_region => /\A1(?<ff>\d{2})[\/](?<bbb>\d{3})[\/](?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
101
|
+
:match_pattern_country => /\A41(?<ff>\d{2})0(?<bbb>\d{3})(?<uuuu>\d{4})(?<p>\d{1})\z/,
|
|
102
|
+
:to_region_wide => lambda { |ff, bbb, uuuu, p| "1#{ff}/#{bbb}/#{uuuu}#{p}" },
|
|
103
|
+
:to_country_wide => lambda { |ff, bbb, uuuu, p| "41#{ff}0#{bbb}#{uuuu}#{p}" } }]
|
|
104
|
+
end
|
|
106
105
|
end
|
data/lib/steuernummer/version.rb
CHANGED
data/lib/steuernummer.rb
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
require "steuernummer/version"
|
|
3
3
|
require "steuernummer/tax_table"
|
|
4
4
|
|
|
5
|
-
|
|
6
5
|
class Steuernummer
|
|
7
6
|
|
|
8
7
|
# Validate your German Steuernummer
|
|
@@ -43,23 +42,22 @@ class Steuernummer
|
|
|
43
42
|
# steuernummer: (String)
|
|
44
43
|
# region: (String)
|
|
45
44
|
|
|
46
|
-
|
|
47
|
-
def initialize(tax_string, region = 'unknown')
|
|
45
|
+
def initialize(tax_string, region = "unknown")
|
|
48
46
|
if tax_string.class != String
|
|
49
47
|
raise("Please use a String as argument")
|
|
50
48
|
end
|
|
51
|
-
unless (region ==
|
|
49
|
+
unless (region == "unknown") || (Steuernummer.valid_regions.include? region)
|
|
52
50
|
raise("unknown region, please use 'unknown' or one of the entries you can get from Steuernummer.valid_regions}")
|
|
53
51
|
end
|
|
54
52
|
|
|
55
|
-
@tax_string
|
|
56
|
-
@provided_region
|
|
57
|
-
@tax_rules
|
|
53
|
+
@tax_string = tax_string
|
|
54
|
+
@provided_region = region
|
|
55
|
+
@tax_rules = get_tax_rules(tax_string)
|
|
58
56
|
end
|
|
59
57
|
|
|
60
58
|
def is_valid?
|
|
61
|
-
if @provided_region !=
|
|
62
|
-
regions = @tax_rules.map {|x| x[:region]}
|
|
59
|
+
if @provided_region != "unknown"
|
|
60
|
+
regions = @tax_rules.map { |x| x[:region] }
|
|
63
61
|
regions.include? @provided_region
|
|
64
62
|
else
|
|
65
63
|
!@tax_rules.empty?
|
|
@@ -70,8 +68,8 @@ class Steuernummer
|
|
|
70
68
|
def country_wide_number
|
|
71
69
|
return nil if !is_valid?
|
|
72
70
|
if get_number_type == :country
|
|
73
|
-
{:number => @tax_string, :region => @tax_rules.first[:region]}
|
|
74
|
-
elsif (@tax_rules.count > 1) && (@provided_region ==
|
|
71
|
+
{ :number => @tax_string, :region => @tax_rules.first[:region] }
|
|
72
|
+
elsif (@tax_rules.count > 1) && (@provided_region == "unknown")
|
|
75
73
|
raise("Can't determine country wide number for a region wide number without knowing the region.
|
|
76
74
|
Please use only entries you can get from Steuernummer.valid_regions")
|
|
77
75
|
else
|
|
@@ -81,9 +79,9 @@ class Steuernummer
|
|
|
81
79
|
arguments_array = match_data.to_a
|
|
82
80
|
arguments_array.shift
|
|
83
81
|
|
|
84
|
-
country_wide = tax_rule[:to_country_wide].call
|
|
82
|
+
country_wide = tax_rule[:to_country_wide].call(*arguments_array)
|
|
85
83
|
|
|
86
|
-
{:number => country_wide, :region => tax_rule[:region]}
|
|
84
|
+
{ :number => country_wide, :region => tax_rule[:region] }
|
|
87
85
|
end
|
|
88
86
|
end
|
|
89
87
|
|
|
@@ -91,7 +89,7 @@ class Steuernummer
|
|
|
91
89
|
def region_wide_number
|
|
92
90
|
return nil if !is_valid?
|
|
93
91
|
if get_number_type == :region
|
|
94
|
-
{:number => @tax_string, :region => @provided_region}
|
|
92
|
+
{ :number => @tax_string, :region => @provided_region }
|
|
95
93
|
elsif get_number_type == :country
|
|
96
94
|
# country_wide_numbers only have one rule, so it's always the first
|
|
97
95
|
tax_rule = @tax_rules.first
|
|
@@ -100,29 +98,24 @@ class Steuernummer
|
|
|
100
98
|
arguments_array = match_data.to_a
|
|
101
99
|
arguments_array.shift
|
|
102
100
|
|
|
103
|
-
region_wide = tax_rule[:to_region_wide].call
|
|
101
|
+
region_wide = tax_rule[:to_region_wide].call(*arguments_array)
|
|
104
102
|
|
|
105
|
-
{:number => region_wide, :region => tax_rule[:region]}
|
|
103
|
+
{ :number => region_wide, :region => tax_rule[:region] }
|
|
106
104
|
end
|
|
107
105
|
end
|
|
108
106
|
|
|
109
107
|
def self.valid_regions
|
|
110
|
-
Steuernummer::TaxTable.tax_rules.map {|x| x[:region]}
|
|
108
|
+
Steuernummer::TaxTable.tax_rules.map { |x| x[:region] }
|
|
111
109
|
end
|
|
112
110
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
111
|
# ----------------------------------------------------------------
|
|
118
112
|
# private functions
|
|
119
113
|
# ----------------------------------------------------------------
|
|
120
114
|
private
|
|
121
115
|
|
|
122
|
-
|
|
123
116
|
def get_number_type
|
|
124
117
|
# returns :country or :region
|
|
125
|
-
tax_rule = @tax_rules.uniq{|x| x[:type]}
|
|
118
|
+
tax_rule = @tax_rules.uniq { |x| x[:type] }
|
|
126
119
|
if tax_rule.count > 1
|
|
127
120
|
raise("both country and region type found, should be impossible!")
|
|
128
121
|
else
|
|
@@ -132,7 +125,7 @@ class Steuernummer
|
|
|
132
125
|
|
|
133
126
|
def get_tax_rule_on_region
|
|
134
127
|
if @tax_rules.count > 1
|
|
135
|
-
possible_regions = @tax_rules.map {|x| x[:region]}
|
|
128
|
+
possible_regions = @tax_rules.map { |x| x[:region] }
|
|
136
129
|
found_region_index = possible_regions.index @provided_region
|
|
137
130
|
@tax_rules[found_region_index]
|
|
138
131
|
else
|
|
@@ -140,7 +133,6 @@ class Steuernummer
|
|
|
140
133
|
end
|
|
141
134
|
end
|
|
142
135
|
|
|
143
|
-
|
|
144
136
|
def get_tax_rules(tax_string)
|
|
145
137
|
tax_rules = Array.new
|
|
146
138
|
Steuernummer::TaxTable.tax_rules.each do |tax_rule|
|
data/steuernummer.gemspec
CHANGED
|
@@ -1,24 +1,31 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
|
-
lib = File.expand_path(
|
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
-
require
|
|
4
|
+
require "steuernummer/version"
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |spec|
|
|
7
|
-
spec.name
|
|
8
|
-
spec.version
|
|
9
|
-
spec.authors
|
|
10
|
-
spec.email
|
|
11
|
-
spec.description
|
|
12
|
-
spec.summary
|
|
13
|
-
spec.homepage
|
|
14
|
-
spec.license
|
|
7
|
+
spec.name = "steuernummer"
|
|
8
|
+
spec.version = Steuernummer::VERSION
|
|
9
|
+
spec.authors = ["Bart Ariens"]
|
|
10
|
+
spec.email = ["steuernummer@ibariens.nl"]
|
|
11
|
+
spec.description = %q{Validates with regex the German Steuernummer and allows to return the region (Bundesland) and/or unified region number (Vereinheitlictes Bundesschema)}
|
|
12
|
+
spec.summary = %q{Simple regex validator for German Steuernummer}
|
|
13
|
+
spec.homepage = "https://github.com/ibariens/steuernummer"
|
|
14
|
+
spec.license = "MIT"
|
|
15
15
|
|
|
16
|
-
spec.files
|
|
17
|
-
spec.executables
|
|
18
|
-
spec.test_files
|
|
16
|
+
spec.files = `git ls-files`.split($/)
|
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
19
19
|
spec.require_paths = ["lib"]
|
|
20
20
|
|
|
21
|
-
spec.
|
|
22
|
-
|
|
23
|
-
spec.add_development_dependency "
|
|
21
|
+
spec.required_ruby_version = ">= 2.0"
|
|
22
|
+
|
|
23
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
|
24
|
+
spec.add_dependency "rake", ">= 12.3.3"
|
|
25
|
+
spec.add_development_dependency "test-unit", "~> 3.0"
|
|
26
|
+
|
|
27
|
+
spec.metadata = {
|
|
28
|
+
"source_code_uri" => "https://github.com/ibariens/steuernummer",
|
|
29
|
+
"changelog_uri" => "https://github.com/ibariens/steuernummer/releases",
|
|
30
|
+
}
|
|
24
31
|
end
|
data/test/test_steuernummer.rb
CHANGED
|
@@ -4,7 +4,7 @@ require 'steuernummer'
|
|
|
4
4
|
|
|
5
5
|
class TestSteuernummer < Test::Unit::TestCase
|
|
6
6
|
def setup
|
|
7
|
-
# Examples taken from:
|
|
7
|
+
# Examples taken from: https://de.wikipedia.org/wiki/Steuernummer
|
|
8
8
|
@wiki_test_entries = [
|
|
9
9
|
['Baden-Württemberg', '93815/08152', '2893081508152'],
|
|
10
10
|
['Bayern', '181/815/08155', '9181081508155'],
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: steuernummer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Bart Ariens
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-07-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -16,46 +16,46 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '2.0'
|
|
20
20
|
type: :development
|
|
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: '
|
|
26
|
+
version: '2.0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rake
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- - "
|
|
31
|
+
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
34
|
-
type: :
|
|
33
|
+
version: 12.3.3
|
|
34
|
+
type: :runtime
|
|
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: test-unit
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0'
|
|
47
|
+
version: '3.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: '3.0'
|
|
55
55
|
description: Validates with regex the German Steuernummer and allows to return the
|
|
56
56
|
region (Bundesland) and/or unified region number (Vereinheitlictes Bundesschema)
|
|
57
57
|
email:
|
|
58
|
-
-
|
|
58
|
+
- steuernummer@ibariens.nl
|
|
59
59
|
executables: []
|
|
60
60
|
extensions: []
|
|
61
61
|
extra_rdoc_files: []
|
|
@@ -70,11 +70,13 @@ files:
|
|
|
70
70
|
- lib/steuernummer/version.rb
|
|
71
71
|
- steuernummer.gemspec
|
|
72
72
|
- test/test_steuernummer.rb
|
|
73
|
-
homepage:
|
|
73
|
+
homepage: https://github.com/ibariens/steuernummer
|
|
74
74
|
licenses:
|
|
75
75
|
- MIT
|
|
76
|
-
metadata:
|
|
77
|
-
|
|
76
|
+
metadata:
|
|
77
|
+
source_code_uri: https://github.com/ibariens/steuernummer
|
|
78
|
+
changelog_uri: https://github.com/ibariens/steuernummer/releases
|
|
79
|
+
post_install_message:
|
|
78
80
|
rdoc_options: []
|
|
79
81
|
require_paths:
|
|
80
82
|
- lib
|
|
@@ -82,15 +84,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
82
84
|
requirements:
|
|
83
85
|
- - ">="
|
|
84
86
|
- !ruby/object:Gem::Version
|
|
85
|
-
version: '0'
|
|
87
|
+
version: '2.0'
|
|
86
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
87
89
|
requirements:
|
|
88
90
|
- - ">="
|
|
89
91
|
- !ruby/object:Gem::Version
|
|
90
92
|
version: '0'
|
|
91
93
|
requirements: []
|
|
92
|
-
rubygems_version: 3.
|
|
93
|
-
signing_key:
|
|
94
|
+
rubygems_version: 3.4.10
|
|
95
|
+
signing_key:
|
|
94
96
|
specification_version: 4
|
|
95
97
|
summary: Simple regex validator for German Steuernummer
|
|
96
98
|
test_files:
|