bootstrap_validator_rails 0.0.5

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.
Files changed (106) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +32 -0
  4. data/lib/bootstrap_validator_rails/engine.rb +4 -0
  5. data/lib/bootstrap_validator_rails/version.rb +3 -0
  6. data/lib/bootstrap_validator_rails.rb +42 -0
  7. data/lib/tasks/bootstrap_validator_rails_tasks.rake +4 -0
  8. data/test/bootstrap_validator_rails_test.rb +13 -0
  9. data/test/dummy/README.rdoc +28 -0
  10. data/test/dummy/Rakefile +6 -0
  11. data/test/dummy/app/assets/javascripts/application.js +13 -0
  12. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  13. data/test/dummy/app/controllers/application_controller.rb +5 -0
  14. data/test/dummy/app/helpers/application_helper.rb +2 -0
  15. data/test/dummy/app/models/post.rb +3 -0
  16. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  17. data/test/dummy/bin/bundle +3 -0
  18. data/test/dummy/bin/rails +4 -0
  19. data/test/dummy/bin/rake +4 -0
  20. data/test/dummy/config/application.rb +23 -0
  21. data/test/dummy/config/boot.rb +5 -0
  22. data/test/dummy/config/database.yml +25 -0
  23. data/test/dummy/config/environment.rb +5 -0
  24. data/test/dummy/config/environments/development.rb +37 -0
  25. data/test/dummy/config/environments/production.rb +82 -0
  26. data/test/dummy/config/environments/test.rb +39 -0
  27. data/test/dummy/config/initializers/assets.rb +8 -0
  28. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  29. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  30. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  31. data/test/dummy/config/initializers/inflections.rb +16 -0
  32. data/test/dummy/config/initializers/mime_types.rb +4 -0
  33. data/test/dummy/config/initializers/session_store.rb +3 -0
  34. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  35. data/test/dummy/config/locales/en.yml +23 -0
  36. data/test/dummy/config/routes.rb +56 -0
  37. data/test/dummy/config/secrets.yml +22 -0
  38. data/test/dummy/config.ru +4 -0
  39. data/test/dummy/db/development.sqlite3 +0 -0
  40. data/test/dummy/db/migrate/20140723124112_create_posts.rb +7 -0
  41. data/test/dummy/db/schema.rb +20 -0
  42. data/test/dummy/db/test.sqlite3 +0 -0
  43. data/test/dummy/log/ENV=test.log +0 -0
  44. data/test/dummy/log/development.log +22 -0
  45. data/test/dummy/log/test.log +781 -0
  46. data/test/dummy/public/404.html +67 -0
  47. data/test/dummy/public/422.html +67 -0
  48. data/test/dummy/public/500.html +66 -0
  49. data/test/dummy/public/favicon.ico +0 -0
  50. data/test/test_helper.rb +15 -0
  51. data/vendor/assets/javascripts/bootstrapValidator.js +1803 -0
  52. data/vendor/assets/javascripts/language/de_DE.js +326 -0
  53. data/vendor/assets/javascripts/language/en_US.js +327 -0
  54. data/vendor/assets/javascripts/language/es_CL.js +326 -0
  55. data/vendor/assets/javascripts/language/hu_HU.js +326 -0
  56. data/vendor/assets/javascripts/language/vi_VN.js +322 -0
  57. data/vendor/assets/javascripts/language/zh_CN.js +326 -0
  58. data/vendor/assets/javascripts/language/zh_TW.js +326 -0
  59. data/vendor/assets/javascripts/validator/base64.js +25 -0
  60. data/vendor/assets/javascripts/validator/between.js +66 -0
  61. data/vendor/assets/javascripts/validator/callback.js +40 -0
  62. data/vendor/assets/javascripts/validator/choice.js +68 -0
  63. data/vendor/assets/javascripts/validator/creditCard.js +103 -0
  64. data/vendor/assets/javascripts/validator/cusip.js +55 -0
  65. data/vendor/assets/javascripts/validator/cvv.js +116 -0
  66. data/vendor/assets/javascripts/validator/date.js +118 -0
  67. data/vendor/assets/javascripts/validator/different.js +41 -0
  68. data/vendor/assets/javascripts/validator/digits.js +24 -0
  69. data/vendor/assets/javascripts/validator/ean.js +40 -0
  70. data/vendor/assets/javascripts/validator/emailAddress.js +31 -0
  71. data/vendor/assets/javascripts/validator/file.js +69 -0
  72. data/vendor/assets/javascripts/validator/greaterThan.js +61 -0
  73. data/vendor/assets/javascripts/validator/grid.js +37 -0
  74. data/vendor/assets/javascripts/validator/hex.js +25 -0
  75. data/vendor/assets/javascripts/validator/hexColor.js +28 -0
  76. data/vendor/assets/javascripts/validator/iban.js +246 -0
  77. data/vendor/assets/javascripts/validator/id.js +815 -0
  78. data/vendor/assets/javascripts/validator/identical.js +40 -0
  79. data/vendor/assets/javascripts/validator/imei.js +44 -0
  80. data/vendor/assets/javascripts/validator/integer.js +28 -0
  81. data/vendor/assets/javascripts/validator/ip.js +48 -0
  82. data/vendor/assets/javascripts/validator/isbn.js +86 -0
  83. data/vendor/assets/javascripts/validator/isin.js +59 -0
  84. data/vendor/assets/javascripts/validator/ismn.js +59 -0
  85. data/vendor/assets/javascripts/validator/issn.js +46 -0
  86. data/vendor/assets/javascripts/validator/lessThan.js +61 -0
  87. data/vendor/assets/javascripts/validator/mac.js +25 -0
  88. data/vendor/assets/javascripts/validator/notEmpty.js +32 -0
  89. data/vendor/assets/javascripts/validator/numeric.js +39 -0
  90. data/vendor/assets/javascripts/validator/phone.js +84 -0
  91. data/vendor/assets/javascripts/validator/regexp.js +42 -0
  92. data/vendor/assets/javascripts/validator/remote.js +70 -0
  93. data/vendor/assets/javascripts/validator/rtn.js +38 -0
  94. data/vendor/assets/javascripts/validator/sedol.js +40 -0
  95. data/vendor/assets/javascripts/validator/siren.js +28 -0
  96. data/vendor/assets/javascripts/validator/siret.js +38 -0
  97. data/vendor/assets/javascripts/validator/step.js +64 -0
  98. data/vendor/assets/javascripts/validator/stringCase.js +36 -0
  99. data/vendor/assets/javascripts/validator/stringLength.js +81 -0
  100. data/vendor/assets/javascripts/validator/uri.js +101 -0
  101. data/vendor/assets/javascripts/validator/uuid.js +46 -0
  102. data/vendor/assets/javascripts/validator/vat.js +1220 -0
  103. data/vendor/assets/javascripts/validator/vin.js +49 -0
  104. data/vendor/assets/javascripts/validator/zipCode.js +162 -0
  105. data/vendor/assets/stylesheets/bootstrapValidator.css +21 -0
  106. metadata +233 -0
@@ -0,0 +1,246 @@
1
+ (function($) {
2
+ $.fn.bootstrapValidator.i18n.iban = $.extend($.fn.bootstrapValidator.i18n.iban || {}, {
3
+ 'default': 'Please enter a valid IBAN number',
4
+ countryNotSupported: 'The country code %s is not supported',
5
+ country: 'Please enter a valid IBAN number in %s',
6
+ countries: {
7
+ AD: 'Andorra',
8
+ AE: 'United Arab Emirates',
9
+ AL: 'Albania',
10
+ AO: 'Angola',
11
+ AT: 'Austria',
12
+ AZ: 'Azerbaijan',
13
+ BA: 'Bosnia and Herzegovina',
14
+ BE: 'Belgium',
15
+ BF: 'Burkina Faso',
16
+ BG: 'Bulgaria',
17
+ BH: 'Bahrain',
18
+ BI: 'Burundi',
19
+ BJ: 'Benin',
20
+ BR: 'Brazil',
21
+ CH: 'Switzerland',
22
+ CI: 'Ivory Coast',
23
+ CM: 'Cameroon',
24
+ CR: 'Costa Rica',
25
+ CV: 'Cape Verde',
26
+ CY: 'Cyprus',
27
+ CZ: 'Czech Republic',
28
+ DE: 'Germany',
29
+ DK: 'Denmark',
30
+ DO: 'Dominican Republic',
31
+ DZ: 'Algeria',
32
+ EE: 'Estonia',
33
+ ES: 'Spain',
34
+ FI: 'Finland',
35
+ FO: 'Faroe Islands',
36
+ FR: 'France',
37
+ GB: 'United Kingdom',
38
+ GE: 'Georgia',
39
+ GI: 'Gibraltar',
40
+ GL: 'Greenland',
41
+ GR: 'Greece',
42
+ GT: 'Guatemala',
43
+ HR: 'Croatia',
44
+ HU: 'Hungary',
45
+ IE: 'Ireland',
46
+ IL: 'Israel',
47
+ IR: 'Iran',
48
+ IS: 'Iceland',
49
+ IT: 'Italy',
50
+ JO: 'Jordan',
51
+ KW: 'Kuwait',
52
+ KZ: 'Kazakhstan',
53
+ LB: 'Lebanon',
54
+ LI: 'Liechtenstein',
55
+ LT: 'Lithuania',
56
+ LU: 'Luxembourg',
57
+ LV: 'Latvia',
58
+ MC: 'Monaco',
59
+ MD: 'Moldova',
60
+ ME: 'Montenegro',
61
+ MG: 'Madagascar',
62
+ MK: 'Macedonia',
63
+ ML: 'Mali',
64
+ MR: 'Mauritania',
65
+ MT: 'Malta',
66
+ MU: 'Mauritius',
67
+ MZ: 'Mozambique',
68
+ NL: 'Netherlands',
69
+ NO: 'Norway',
70
+ PK: 'Pakistan',
71
+ PL: 'Poland',
72
+ PS: 'Palestinian',
73
+ PT: 'Portugal',
74
+ QA: 'Qatar',
75
+ RO: 'Romania',
76
+ RS: 'Serbia',
77
+ SA: 'Saudi Arabia',
78
+ SE: 'Sweden',
79
+ SI: 'Slovenia',
80
+ SK: 'Slovakia',
81
+ SM: 'San Marino',
82
+ SN: 'Senegal',
83
+ TN: 'Tunisia',
84
+ TR: 'Turkey',
85
+ VG: 'Virgin Islands, British'
86
+ }
87
+ });
88
+
89
+ $.fn.bootstrapValidator.validators.iban = {
90
+ html5Attributes: {
91
+ message: 'message',
92
+ country: 'country'
93
+ },
94
+
95
+ // http://www.swift.com/dsp/resources/documents/IBAN_Registry.pdf
96
+ // http://en.wikipedia.org/wiki/International_Bank_Account_Number#IBAN_formats_by_country
97
+ REGEX: {
98
+ 'AD': 'AD[0-9]{2}[0-9]{4}[0-9]{4}[A-Z0-9]{12}', // Andorra
99
+ 'AE': 'AE[0-9]{2}[0-9]{3}[0-9]{16}', // United Arab Emirates
100
+ 'AL': 'AL[0-9]{2}[0-9]{8}[A-Z0-9]{16}', // Albania
101
+ 'AO': 'AO[0-9]{2}[0-9]{21}', // Angola
102
+ 'AT': 'AT[0-9]{2}[0-9]{5}[0-9]{11}', // Austria
103
+ 'AZ': 'AZ[0-9]{2}[A-Z]{4}[A-Z0-9]{20}', // Azerbaijan
104
+ 'BA': 'BA[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{8}[0-9]{2}', // Bosnia and Herzegovina
105
+ 'BE': 'BE[0-9]{2}[0-9]{3}[0-9]{7}[0-9]{2}', // Belgium
106
+ 'BF': 'BF[0-9]{2}[0-9]{23}', // Burkina Faso
107
+ 'BG': 'BG[0-9]{2}[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}', // Bulgaria
108
+ 'BH': 'BH[0-9]{2}[A-Z]{4}[A-Z0-9]{14}', // Bahrain
109
+ 'BI': 'BI[0-9]{2}[0-9]{12}', // Burundi
110
+ 'BJ': 'BJ[0-9]{2}[A-Z]{1}[0-9]{23}', // Benin
111
+ 'BR': 'BR[0-9]{2}[0-9]{8}[0-9]{5}[0-9]{10}[A-Z][A-Z0-9]', // Brazil
112
+ 'CH': 'CH[0-9]{2}[0-9]{5}[A-Z0-9]{12}', // Switzerland
113
+ 'CI': 'CI[0-9]{2}[A-Z]{1}[0-9]{23}', // Ivory Coast
114
+ 'CM': 'CM[0-9]{2}[0-9]{23}', // Cameroon
115
+ 'CR': 'CR[0-9]{2}[0-9]{3}[0-9]{14}', // Costa Rica
116
+ 'CV': 'CV[0-9]{2}[0-9]{21}', // Cape Verde
117
+ 'CY': 'CY[0-9]{2}[0-9]{3}[0-9]{5}[A-Z0-9]{16}', // Cyprus
118
+ 'CZ': 'CZ[0-9]{2}[0-9]{20}', // Czech Republic
119
+ 'DE': 'DE[0-9]{2}[0-9]{8}[0-9]{10}', // Germany
120
+ 'DK': 'DK[0-9]{2}[0-9]{14}', // Denmark
121
+ 'DO': 'DO[0-9]{2}[A-Z0-9]{4}[0-9]{20}', // Dominican Republic
122
+ 'DZ': 'DZ[0-9]{2}[0-9]{20}', // Algeria
123
+ 'EE': 'EE[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{11}[0-9]{1}', // Estonia
124
+ 'ES': 'ES[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{1}[0-9]{1}[0-9]{10}', // Spain
125
+ 'FI': 'FI[0-9]{2}[0-9]{6}[0-9]{7}[0-9]{1}', // Finland
126
+ 'FO': 'FO[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}', // Faroe Islands
127
+ 'FR': 'FR[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}', // France
128
+ 'GB': 'GB[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}', // United Kingdom
129
+ 'GE': 'GE[0-9]{2}[A-Z]{2}[0-9]{16}', // Georgia
130
+ 'GI': 'GI[0-9]{2}[A-Z]{4}[A-Z0-9]{15}', // Gibraltar
131
+ 'GL': 'GL[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}', // Greenland
132
+ 'GR': 'GR[0-9]{2}[0-9]{3}[0-9]{4}[A-Z0-9]{16}', // Greece
133
+ 'GT': 'GT[0-9]{2}[A-Z0-9]{4}[A-Z0-9]{20}', // Guatemala
134
+ 'HR': 'HR[0-9]{2}[0-9]{7}[0-9]{10}', // Croatia
135
+ 'HU': 'HU[0-9]{2}[0-9]{3}[0-9]{4}[0-9]{1}[0-9]{15}[0-9]{1}', // Hungary
136
+ 'IE': 'IE[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}', // Ireland
137
+ 'IL': 'IL[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{13}', // Israel
138
+ 'IR': 'IR[0-9]{2}[0-9]{22}', // Iran
139
+ 'IS': 'IS[0-9]{2}[0-9]{4}[0-9]{2}[0-9]{6}[0-9]{10}', // Iceland
140
+ 'IT': 'IT[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}', // Italy
141
+ 'JO': 'JO[0-9]{2}[A-Z]{4}[0-9]{4}[0]{8}[A-Z0-9]{10}', // Jordan
142
+ 'KW': 'KW[0-9]{2}[A-Z]{4}[0-9]{22}', // Kuwait
143
+ 'KZ': 'KZ[0-9]{2}[0-9]{3}[A-Z0-9]{13}', // Kazakhstan
144
+ 'LB': 'LB[0-9]{2}[0-9]{4}[A-Z0-9]{20}', // Lebanon
145
+ 'LI': 'LI[0-9]{2}[0-9]{5}[A-Z0-9]{12}', // Liechtenstein
146
+ 'LT': 'LT[0-9]{2}[0-9]{5}[0-9]{11}', // Lithuania
147
+ 'LU': 'LU[0-9]{2}[0-9]{3}[A-Z0-9]{13}', // Luxembourg
148
+ 'LV': 'LV[0-9]{2}[A-Z]{4}[A-Z0-9]{13}', // Latvia
149
+ 'MC': 'MC[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}', // Monaco
150
+ 'MD': 'MD[0-9]{2}[A-Z0-9]{20}', // Moldova
151
+ 'ME': 'ME[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}', // Montenegro
152
+ 'MG': 'MG[0-9]{2}[0-9]{23}', // Madagascar
153
+ 'MK': 'MK[0-9]{2}[0-9]{3}[A-Z0-9]{10}[0-9]{2}', // Macedonia
154
+ 'ML': 'ML[0-9]{2}[A-Z]{1}[0-9]{23}', // Mali
155
+ 'MR': 'MR13[0-9]{5}[0-9]{5}[0-9]{11}[0-9]{2}', // Mauritania
156
+ 'MT': 'MT[0-9]{2}[A-Z]{4}[0-9]{5}[A-Z0-9]{18}', // Malta
157
+ 'MU': 'MU[0-9]{2}[A-Z]{4}[0-9]{2}[0-9]{2}[0-9]{12}[0-9]{3}[A-Z]{3}',// Mauritius
158
+ 'MZ': 'MZ[0-9]{2}[0-9]{21}', // Mozambique
159
+ 'NL': 'NL[0-9]{2}[A-Z]{4}[0-9]{10}', // Netherlands
160
+ 'NO': 'NO[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{1}', // Norway
161
+ 'PK': 'PK[0-9]{2}[A-Z]{4}[A-Z0-9]{16}', // Pakistan
162
+ 'PL': 'PL[0-9]{2}[0-9]{8}[0-9]{16}', // Poland
163
+ 'PS': 'PS[0-9]{2}[A-Z]{4}[A-Z0-9]{21}', // Palestinian
164
+ 'PT': 'PT[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{11}[0-9]{2}', // Portugal
165
+ 'QA': 'QA[0-9]{2}[A-Z]{4}[A-Z0-9]{21}', // Qatar
166
+ 'RO': 'RO[0-9]{2}[A-Z]{4}[A-Z0-9]{16}', // Romania
167
+ 'RS': 'RS[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}', // Serbia
168
+ 'SA': 'SA[0-9]{2}[0-9]{2}[A-Z0-9]{18}', // Saudi Arabia
169
+ 'SE': 'SE[0-9]{2}[0-9]{3}[0-9]{16}[0-9]{1}', // Sweden
170
+ 'SI': 'SI[0-9]{2}[0-9]{5}[0-9]{8}[0-9]{2}', // Slovenia
171
+ 'SK': 'SK[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{10}', // Slovakia
172
+ 'SM': 'SM[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}', // San Marino
173
+ 'SN': 'SN[0-9]{2}[A-Z]{1}[0-9]{23}', // Senegal
174
+ 'TN': 'TN59[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}', // Tunisia
175
+ 'TR': 'TR[0-9]{2}[0-9]{5}[A-Z0-9]{1}[A-Z0-9]{16}', // Turkey
176
+ 'VG': 'VG[0-9]{2}[A-Z]{4}[0-9]{16}' // Virgin Islands, British
177
+ },
178
+
179
+ /**
180
+ * Validate an International Bank Account Number (IBAN)
181
+ * To test it, take the sample IBAN from
182
+ * http://www.nordea.com/Our+services/International+products+and+services/Cash+Management/IBAN+countries/908462.html
183
+ *
184
+ * @param {BootstrapValidator} validator The validator plugin instance
185
+ * @param {jQuery} $field Field element
186
+ * @param {Object} options Can consist of the following keys:
187
+ * - message: The invalid message
188
+ * - country: The ISO 3166-1 country code. It can be
189
+ * - A country code
190
+ * - Name of field which its value defines the country code
191
+ * - Name of callback function that returns the country code
192
+ * - A callback function that returns the country code
193
+ * @returns {Boolean|Object}
194
+ */
195
+ validate: function(validator, $field, options) {
196
+ var value = $field.val();
197
+ if (value === '') {
198
+ return true;
199
+ }
200
+
201
+ value = value.replace(/[^a-zA-Z0-9]/g, '').toUpperCase();
202
+ var country = options.country;
203
+ if (!country) {
204
+ country = value.substr(0, 2);
205
+ } else if (typeof country !== 'string' || !this.REGEX[country]) {
206
+ // Determine the country code
207
+ country = validator.getDynamicOption($field, country);
208
+ }
209
+
210
+ if (!this.REGEX[country]) {
211
+ return {
212
+ valid: false,
213
+ message: $.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.iban.countryNotSupported, country)
214
+ };
215
+ }
216
+
217
+ if (!(new RegExp('^' + this.REGEX[country] + '$')).test(value)) {
218
+ return {
219
+ valid: false,
220
+ message: $.fn.bootstrapValidator.helpers.format(options.message || $.fn.bootstrapValidator.i18n.iban.country, $.fn.bootstrapValidator.i18n.iban.countries[country])
221
+ };
222
+ }
223
+
224
+ value = value.substr(4) + value.substr(0, 4);
225
+ value = $.map(value.split(''), function(n) {
226
+ var code = n.charCodeAt(0);
227
+ return (code >= 'A'.charCodeAt(0) && code <= 'Z'.charCodeAt(0))
228
+ // Replace A, B, C, ..., Z with 10, 11, ..., 35
229
+ ? (code - 'A'.charCodeAt(0) + 10)
230
+ : n;
231
+ });
232
+ value = value.join('');
233
+
234
+ var temp = parseInt(value.substr(0, 1), 10),
235
+ length = value.length;
236
+ for (var i = 1; i < length; ++i) {
237
+ temp = (temp * 10 + parseInt(value.substr(i, 1), 10)) % 97;
238
+ }
239
+
240
+ return {
241
+ valid: (temp === 1),
242
+ message: $.fn.bootstrapValidator.helpers.format(options.message || $.fn.bootstrapValidator.i18n.iban.country, $.fn.bootstrapValidator.i18n.iban.countries[country])
243
+ };
244
+ }
245
+ };
246
+ }(window.jQuery));