iban-tools 0.0.6 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -2,30 +2,14 @@
2
2
 
3
3
  iban-tools is a Ruby library for manipulating and validating IBAN account numbers. You can [read more about IBAN](http://en.wikipedia.org/wiki/International_Bank_Account_Number) on Wikipedia
4
4
 
5
- ## Credit
6
-
7
- [Iulianu](http://github.com/iulianu) wrote [iban-tools](http://github.com/iulianu/iban-tools). We just removed use of `String#ord` for compatibility with Ruby 1.8 and 1.9 and of course pushed the built gem to gemcutter.
8
-
9
- You'll find the [source code](http://github.com/iulianu/iban-tools) on Github. [Our fork](http://github.com/alphasights/iban-tools) is also available on GitHub
10
-
11
- The gem should be compatible with Ruby 1.8.6, 1.8.7 and 1.9.1.
12
-
13
5
  ## INSTALLATION
14
6
 
15
- You'll need to add http://gems.rubyforge.com as a gem source if you don't already have it.
16
-
17
- You can accomplish this with the gemcutter gem.
18
-
19
- gem install gemcutter
20
- gem tumble
21
-
22
- Once you have the gemcutter source added you can install iban-tools with a simple gem install.
23
-
24
7
  gem install iban-tools
25
8
 
9
+ The gem should be compatible with MRI 1.8 and 1.9.
10
+
26
11
  ## USAGE
27
12
 
28
- require 'rubygems'
29
13
  require 'iban-tools'
30
14
 
31
15
  IBANTools::IBAN.valid?("GB82 WEST 1234 5698 7654 32")
@@ -48,3 +32,7 @@ Pretty print, canonicalize, and extract fields from an IBAN code
48
32
 
49
33
  iban.prettify
50
34
  => "RO49 AAAA 1B31 0075 9384 0000"
35
+
36
+ ## Credit
37
+
38
+ [Iulianu](http://github.com/iulianu) wrote [iban-tools](http://github.com/iulianu/iban-tools). ([AlphaSights](http://dev.alphasights.com)) is now maintaining the gem.
@@ -85,4 +85,4 @@ module IBANTools
85
85
  end
86
86
 
87
87
  end
88
- end
88
+ end
@@ -21,7 +21,7 @@ module IBANTools
21
21
  def self.load_from_string( string )
22
22
  rule_hash = YAML.load(string)
23
23
  rule_hash.each do |country_code, specs|
24
- specs["bban_pattern"] = Regexp.new(specs["bban_pattern"])
24
+ specs["bban_pattern"] = Regexp.new("^" + specs["bban_pattern"] + "$")
25
25
  end
26
26
  IBANRules.new(rule_hash)
27
27
  end
@@ -1,242 +1,282 @@
1
1
  # Data from http://www.tbg5-finance.org/?ibandocs.shtml/
2
2
 
3
- "AD":
3
+ 'AD':
4
4
  # Andorra
5
5
  length: 24
6
- bban_pattern: "\d{8}[A-Z0-9]{12}"
6
+ bban_pattern: '\d{8}[A-Z0-9]{12}'
7
7
 
8
- "AL":
8
+ 'AE':
9
+ # United Arab Emirates
10
+ length: 23
11
+ bban_pattern: '\d{19}'
12
+
13
+ 'AL':
9
14
  # Albania
10
15
  length: 28
11
- bban_pattern: "\d{8}[A-Z0-9]{16}"
16
+ bban_pattern: '\d{8}[A-Z0-9]{16}'
12
17
 
13
- "AT":
18
+ 'AT':
14
19
  # Austria
15
20
  length: 20
16
- bban_pattern: "\d{16}"
21
+ bban_pattern: '\d{16}'
17
22
 
18
- "BA":
23
+ 'BA':
19
24
  # Bosnia
20
25
  length: 20
21
- bban_pattern: "\d{16}"
26
+ bban_pattern: '\d{16}'
22
27
 
23
- "BE":
28
+ 'BE':
24
29
  # Belgium
25
30
  length: 16
26
- bban_pattern: "\d{12}"
31
+ bban_pattern: '\d{12}'
27
32
 
28
- "BG":
33
+ 'BG':
29
34
  # Bulgaria
30
35
  length: 22
31
- bban_pattern: "[A-Z]{4}\d{6}[A-Z0-9]{8}"
36
+ bban_pattern: '[A-Z]{4}\d{6}[A-Z0-9]{8}'
37
+
38
+ 'BH':
39
+ # Bahrain
40
+ length: 22
41
+ bban_pattern: '[A-Z]{4}[A-Z0-9]{14}'
32
42
 
33
- "CH":
43
+ 'CH':
34
44
  # Switzerland
35
45
  length: 21
36
- bban_pattern: "\d{5}[A-Z0-9]{12}"
46
+ bban_pattern: '\d{5}[A-Z0-9]{12}'
37
47
 
38
- "CY":
48
+ 'CY':
39
49
  # Cyprus
40
50
  length: 28
41
- bban_pattern: "\d{8}[A-Z0-9]{16}"
51
+ bban_pattern: '\d{8}[A-Z0-9]{16}'
42
52
 
43
- "CZ":
53
+ 'CZ':
44
54
  # Czech Republic
45
55
  length: 24
46
- bban_pattern: "\d{20}"
56
+ bban_pattern: '\d{20}'
47
57
 
48
- "DE":
58
+ 'DE':
49
59
  # Germany
50
60
  length: 22
51
- bban_pattern: "\d{18}"
61
+ bban_pattern: '\d{18}'
52
62
 
53
- "DK":
63
+ 'DK':
54
64
  # Denmark
55
65
  length: 18
56
- bban_pattern: "\d{14}"
66
+ bban_pattern: '\d{14}'
57
67
 
58
- "EE":
68
+ 'DO':
69
+ # Dominican Republic
70
+ length: 28
71
+ bban_pattern: '[A-Z]{4}\d{20}'
72
+
73
+ 'EE':
59
74
  # Estonia
60
75
  length: 20
61
- bban_pattern: "\d{16}"
76
+ bban_pattern: '\d{16}'
62
77
 
63
- "ES":
78
+ 'ES':
64
79
  # Spain
65
80
  length: 24
66
- bban_pattern: "\d{20}"
81
+ bban_pattern: '\d{20}'
67
82
 
68
- "FI":
83
+ 'FI':
69
84
  # Finland
70
85
  length: 18
71
- bban_pattern: "\d{14}"
86
+ bban_pattern: '\d{14}'
72
87
 
73
- "FO":
88
+ 'FO':
74
89
  # Faroe Islands
75
90
  length: 18
76
- bban_pattern: "\d{14}"
91
+ bban_pattern: '\d{14}'
77
92
 
78
- "FR":
93
+ 'FR':
79
94
  # France
80
95
  length: 27
81
- bban_pattern: "\d{10}[A-Z0-9]{11}\d{2}"
96
+ bban_pattern: '\d{10}[A-Z0-9]{11}\d{2}'
82
97
 
83
- "GB":
98
+ 'GB':
84
99
  # United Kingdom
85
100
  length: 22
86
- bban_pattern: "[A-Z]{4}\d{14}"
101
+ bban_pattern: '[A-Z]{4}\d{14}'
102
+
103
+ 'GE':
104
+ # Georgia
105
+ length: 22
106
+ bban_pattern: '[A-Z]{2}\d{16}'
87
107
 
88
- "GI":
108
+ 'GI':
89
109
  # Gibraltar
90
110
  length: 23
91
- bban_pattern: "[A-Z]{4}[A-Z0-9]{15}"
111
+ bban_pattern: '[A-Z]{4}[A-Z0-9]{15}'
92
112
 
93
- "GL":
113
+ 'GL':
94
114
  # Greenland
95
115
  length: 18
96
- bban_pattern: "\d{14}"
116
+ bban_pattern: '\d{14}'
97
117
 
98
- "GR":
118
+ 'GR':
99
119
  # Greece
100
120
  length: 27
101
- bban_pattern: "\d{7}[A-Z0-9]{16}"
121
+ bban_pattern: '\d{7}[A-Z0-9]{16}'
102
122
 
103
- "HR":
123
+ 'HR':
104
124
  # Croatia
105
125
  length: 21
106
- bban_pattern: "\d{17}"
126
+ bban_pattern: '\d{17}'
107
127
 
108
- "HU":
128
+ 'HU':
109
129
  # Hungary
110
130
  length: 28
111
- bban_pattern: "\d{24}"
131
+ bban_pattern: '\d{24}'
112
132
 
113
- "IE":
133
+ 'IE':
114
134
  # Ireland
115
135
  length: 22
116
- bban_pattern: "[A-Z]{4}\d{14}"
136
+ bban_pattern: '[A-Z]{4}\d{14}'
117
137
 
118
- "IL":
138
+ 'IL':
119
139
  # Israel
120
140
  length: 23
121
- bban_pattern: "\d{19}"
141
+ bban_pattern: '\d{19}'
122
142
 
123
- "IS":
143
+ 'IS':
124
144
  # Iceland
125
145
  length: 26
126
- bban_pattern: "\d{22}"
146
+ bban_pattern: '\d{22}'
127
147
 
128
- "IT":
148
+ 'IT':
129
149
  # Italy
130
150
  length: 27
131
- bban_pattern: "[A-Z]\d{10}[A-Z0-9]{12}"
151
+ bban_pattern: '[A-Z]\d{10}[A-Z0-9]{12}'
132
152
 
133
- "LI":
153
+ 'KW':
154
+ # Kuwait
155
+ length: 30
156
+ bban_pattern: '[A-Z]{4}\d{22}'
157
+
158
+ 'KZ':
159
+ # Kazakhstan
160
+ length: 20
161
+ bban_pattern: '\d{3}[A-Z]{3}\d{10}'
162
+
163
+ 'LB':
164
+ # Lebanon
165
+ length: 28
166
+ bban_pattern: '\d{4}[A-Z0-9]{20}'
167
+
168
+ 'LI':
134
169
  # Liechtenstein
135
170
  length: 21
136
- bban_pattern: "\d{5}[A-Z0-9]{12}"
171
+ bban_pattern: '\d{5}[A-Z0-9]{12}'
137
172
 
138
- "LT":
173
+ 'LT':
139
174
  # Lithuania
140
175
  length: 20
141
- bban_pattern: "\d{16}"
176
+ bban_pattern: '\d{16}'
142
177
 
143
- "LU":
178
+ 'LU':
144
179
  # Luxembourg
145
180
  length: 20
146
- bban_pattern: "\d{3}[A-Z0-9]{13}"
181
+ bban_pattern: '\d{3}[A-Z0-9]{13}'
147
182
 
148
- "LV":
183
+ 'LV':
149
184
  # Latvia
150
185
  length: 21
151
- bban_pattern: "[A-Z]{4}[A-Z0-9]{13}"
186
+ bban_pattern: '[A-Z]{4}[A-Z0-9]{13}'
152
187
 
153
- "MC":
188
+ 'MC':
154
189
  # Monaco
155
190
  length: 27
156
- bban_pattern: "\d{10}[A-Z0-9]{11}\d{2}"
191
+ bban_pattern: '\d{10}[A-Z0-9]{11}\d{2}'
157
192
 
158
- "ME":
193
+ 'ME':
159
194
  # Montenegro
160
195
  length: 22
161
- bban_pattern: "\d{18}"
196
+ bban_pattern: '\d{18}'
162
197
 
163
- "MK":
198
+ 'MK':
164
199
  # Macedonia
165
200
  length: 19
166
- bban_pattern: "\d{3}[A-Z0-9]{10}\d{2}"
201
+ bban_pattern: '\d{3}[A-Z0-9]{10}\d{2}'
202
+
203
+ 'MR':
204
+ # Mauritania
205
+ length: 27
206
+ bban_pattern: '\d{23}'
167
207
 
168
- "MT":
208
+ 'MT':
169
209
  # Malta
170
210
  length: 31
171
- bban_pattern: "[A-Z]{4}\d{5}[A-Z0-9]{18}"
211
+ bban_pattern: '[A-Z]{4}\d{5}[A-Z0-9]{18}'
172
212
 
173
- "MU":
213
+ 'MU':
174
214
  # Mauritius
175
215
  length: 30
176
- bban_pattern: "[A-Z]{4}\d{19}[A-Z]{3}"
216
+ bban_pattern: '[A-Z]{4}\d{19}[A-Z]{3}'
177
217
 
178
- "NL":
218
+ 'NL':
179
219
  # Netherlands
180
220
  length: 18
181
- bban_pattern: "[A-Z]{4}\d{10}"
221
+ bban_pattern: '[A-Z]{4}\d{10}'
182
222
 
183
- "NO":
223
+ 'NO':
184
224
  # Norway
185
225
  length: 15
186
- bban_pattern: "\d{11}"
226
+ bban_pattern: '\d{11}'
187
227
 
188
- "PL":
228
+ 'PL':
189
229
  # Poland
190
230
  length: 28
191
- bban_pattern: "\d{8}[A-Z0-9]{16}"
231
+ bban_pattern: '\d{8}[A-Z0-9]{16}'
192
232
 
193
- "PT":
233
+ 'PT':
194
234
  # Portugal
195
235
  length: 25
196
- bban_pattern: "\d{21}"
236
+ bban_pattern: '\d{21}'
197
237
 
198
- "RO":
238
+ 'RO':
199
239
  # Romania
200
240
  length: 24
201
- bban_pattern: "[A-Z]{4}[A-Z0-9]{16}"
241
+ bban_pattern: '[A-Z]{4}[A-Z0-9]{16}'
202
242
 
203
- "RS":
243
+ 'RS':
204
244
  # Serbia
205
245
  length: 22
206
- bban_pattern: "\d{18}"
246
+ bban_pattern: '\d{18}'
207
247
 
208
- "SA":
248
+ 'SA':
209
249
  # Saudi Arabia
210
250
  length: 24
211
- bban_pattern: "\d{2}[A-Z0-9]{18}"
251
+ bban_pattern: '\d{2}[A-Z0-9]{18}'
212
252
 
213
- "SE":
253
+ 'SE':
214
254
  # Sweden
215
255
  length: 24
216
- bban_pattern: "\d{20}"
256
+ bban_pattern: '\d{20}'
217
257
 
218
- "SI":
258
+ 'SI':
219
259
  # Slovenia
220
260
  length: 19
221
- bban_pattern: "\d{15}"
261
+ bban_pattern: '\d{15}'
222
262
 
223
- "SK":
263
+ 'SK':
224
264
  # Slovakia
225
265
  length: 24
226
- bban_pattern: "\d{20}"
266
+ bban_pattern: '\d{20}'
227
267
 
228
- "SM":
268
+ 'SM':
229
269
  # San Marino
230
270
  length: 27
231
- bban_pattern: "[A-Z]\d{10}[A-Z0-9]{12}"
271
+ bban_pattern: '[A-Z]\d{10}[A-Z0-9]{12}'
232
272
 
233
- "TN":
273
+ 'TN':
234
274
  # Tunisia
235
275
  length: 24
236
- bban_pattern: "\d{20}"
276
+ bban_pattern: '\d{20}'
237
277
 
238
- "TR":
278
+ 'TR':
239
279
  # Turkey
240
280
  length: 26
241
- bban_pattern: "\d{5}[A-Z0-9]{17}"
281
+ bban_pattern: '\d{5}[A-Z0-9]{17}'
242
282
 
metadata CHANGED
@@ -1,60 +1,53 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: iban-tools
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.6
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.8
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
+ authors:
7
8
  - Iulian Dogariu
9
+ - Tor Erik Linnerud
8
10
  autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
-
12
- date: 2009-11-05 00:00:00 +00:00
13
- default_executable:
13
+ date: 2012-02-22 00:00:00.000000000 Z
14
14
  dependencies: []
15
-
16
15
  description: Validates IBAN account numbers
17
- email:
16
+ email:
18
17
  - code@iuliandogariu.com
18
+ - tor@alphasights.com
19
19
  executables: []
20
-
21
20
  extensions: []
22
-
23
21
  extra_rdoc_files: []
24
-
25
- files:
22
+ files:
26
23
  - README.md
27
24
  - lib/iban-tools.rb
28
25
  - lib/iban-tools/iban.rb
29
26
  - lib/iban-tools/iban_rules.rb
30
27
  - lib/iban-tools/rules.yml
31
- has_rdoc: true
32
28
  homepage:
33
29
  licenses: []
34
-
35
30
  post_install_message:
36
31
  rdoc_options: []
37
-
38
- require_paths:
32
+ require_paths:
39
33
  - lib
40
- required_ruby_version: !ruby/object:Gem::Requirement
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- version: "0"
45
- version:
46
- required_rubygems_version: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: "0"
51
- version:
52
- requirements:
34
+ required_ruby_version: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ required_rubygems_version: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ requirements:
53
47
  - none
54
48
  rubyforge_project:
55
- rubygems_version: 1.3.5
49
+ rubygems_version: 1.8.11
56
50
  signing_key:
57
51
  specification_version: 3
58
52
  summary: IBAN validator
59
53
  test_files: []
60
-