steuernummer 1.1.5 → 1.1.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5ea3d7887b5121743774536b6103b0febec95ef9d42259294d134ed4e002995b
4
- data.tar.gz: 9ebd9282383f8da86e22545e4f19bff5d90c757400894952f49d4649104d2679
3
+ metadata.gz: 9b50e9b188d2b9c80ea84ded8ad0fe1212b5b4bf563793eb8e43d5c620647132
4
+ data.tar.gz: 79a03850d53fa5d085d1c0a88e60ef059b1f0a9dfe05bb477038e02ee4a1e08c
5
5
  SHA512:
6
- metadata.gz: 5fac688a2555dd581e1f6089c2cb96d2a0aa564cfaad5c2ff4ba3eb02ca357a551d70938268aca58a72467381970cde4453fcae2da5962d76c20bbd997836928
7
- data.tar.gz: 3502bd4532837347e2631f882301295c1b8d4e401544806a7ddecbb11b43f85b876131ba981ae82563804575009cdeaf618533a5d3695456eed4c16931bd1e36
6
+ metadata.gz: facb8ed196911b4c2104af74d5f4ee884e1b3d873402df64124422945233759de8f9281878cd27b4dcc937cdadef7eb1df30ad592943a243376016c9f5fcab2b
7
+ data.tar.gz: cfd66aedbef33de00c0e549bd332d28eca576593e396021cd2cb8be0f951f550a35797667677b301c6c711543dc691c951a97858a07591d5012d99abf08bf5d3
data/.gitignore CHANGED
File without changes
data/Gemfile CHANGED
File without changes
File without changes
data/README.md CHANGED
File without changes
data/Rakefile CHANGED
File without changes
@@ -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 == 'unknown') || (Steuernummer.valid_regions.include? 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 = tax_string
56
- @provided_region = region
57
- @tax_rules = get_tax_rules(tax_string)
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 != 'unknown'
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 == 'unknown')
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 *arguments_array
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 *arguments_array
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|
@@ -5,102 +5,101 @@ class Steuernummer::TaxTable
5
5
  # All values are based on: http://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
- 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
- ]
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
@@ -1,3 +1,3 @@
1
1
  class Steuernummer
2
- VERSION = "1.1.5"
2
+ VERSION = "1.1.6"
3
3
  end
@@ -19,6 +19,6 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake", '~> 0'
22
+ spec.add_dependency "rake", ">= 12.3.3"
23
23
  spec.add_development_dependency "test-unit", '~> 0'
24
24
  end
File without changes
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.5
4
+ version: 1.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bart Ariens
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-04 00:00:00.000000000 Z
11
+ date: 2020-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
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: '0'
40
+ version: 12.3.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: test-unit
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -89,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
91
  requirements: []
92
- rubygems_version: 3.0.3
92
+ rubygems_version: 3.1.2
93
93
  signing_key:
94
94
  specification_version: 4
95
95
  summary: Simple regex validator for German Steuernummer