steuernummer 1.1.5 → 1.1.6

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: 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