validates_russian 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -4
- data/doc/english_readme.md +3 -3
- data/lib/validates_russian/okv.rb +3 -0
- data/lib/validates_russian/version.rb +1 -1
- data/lib/validators/ks_format_validator.rb +8 -0
- data/lib/validators/ogrn_format_validator.rb +14 -0
- data/lib/validators/rs_format_validator.rb +8 -0
- data/spec/validators/ks_format_validator_spec.rb +37 -0
- data/spec/validators/ogrn_format_validator_spec.rb +38 -0
- data/spec/validators/okpo_format_validator_spec.rb +17 -19
- data/spec/validators/rs_format_validator_spec.rb +38 -0
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee7c009be5b8e81ccbb4081ca49a4f37b3ed0bfa
|
4
|
+
data.tar.gz: 2a9f183c335bd7eb0709794332417a1d3d55efa5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df80c2215dd8db4e37184336bd1376138b8d720c57e2a509835663e97bc44fcc8e3338373ddb7335598b997f89b9537424d5154dc6db7056b0bf2aece6f30634
|
7
|
+
data.tar.gz: 26ab5f70a442599280f2d9569bed082357a5635ab9244f339cb4b887db29263063c29edb06f33a3f6e650ef13c7bfced3636995389050b58046d9e1498768646
|
data/README.md
CHANGED
@@ -10,11 +10,13 @@
|
|
10
10
|
|
11
11
|
* [ИНН](http://ru.wikipedia.org/wiki/Идентификационный_номер_налогоплательщика) (InnFormatValidator)
|
12
12
|
* [ОКПО](http://ru.wikipedia.org/wiki/Общероссийский_классификатор_предприятий_и_организаций) (OkpoFormatValidator)
|
13
|
-
* ОКАТО (TODO)
|
14
13
|
* [КПП](http://ru.wikipedia.org/wiki/Код_причины_постановки_на_учёт) (KppFormatValidator)
|
15
|
-
* ОГРН (
|
16
|
-
* Корреспондентский счёт (
|
17
|
-
* Рассчётный счёт (
|
14
|
+
* [ОГРН](http://ru.wikipedia.org/wiki/Основной_государственный_регистрационный_номер) (OgrnFormatValidator)
|
15
|
+
* [Корреспондентский счёт] (http://ru.wikipedia.org/wiki/Корреспондентский_счёт) (KsFormatValidator)
|
16
|
+
* [Рассчётный счёт] (http://ru.wikipedia.org/wiki/Расчётный_счёт) (RsFormatValidator)
|
17
|
+
* ОКАТО (TODO v0.0.6)
|
18
|
+
* СНИЛС (TODO v0.0.6)
|
19
|
+
* Значение паспорта (TODO v0.0.6)
|
18
20
|
|
19
21
|
## Установка
|
20
22
|
|
data/doc/english_readme.md
CHANGED
@@ -11,9 +11,9 @@ Russian specific values validation:
|
|
11
11
|
* [OKPO](http://ru.wikipedia.org/wiki/Общероссийский_классификатор_предприятий_и_организаций) (OkpoFormatValidator) Legal code
|
12
12
|
* OKATO (TODO)
|
13
13
|
* [KPP](http://ru.wikipedia.org/wiki/Код_причины_постановки_на_учёт) (KppFormatValidator) Code of reason for registration
|
14
|
-
* OGRN (
|
15
|
-
* Correspondent Account Value (
|
16
|
-
* Bank Account Value (
|
14
|
+
* [OGRN](http://ru.wikipedia.org/wiki/Основной_государственный_регистрационный_номер) (OgrnFormatValidator) Main state registration number
|
15
|
+
* [Correspondent Account Value] (http://ru.wikipedia.org/wiki/Корреспондентский_счёт) (KsFormatValidator)
|
16
|
+
* [Bank Account Value] (http://ru.wikipedia.org/wiki/Расчётный_счёт) (RsFormatValidator)
|
17
17
|
|
18
18
|
## Installation
|
19
19
|
|
@@ -0,0 +1,3 @@
|
|
1
|
+
module ValidatesRussian
|
2
|
+
OKV = %w{388 728 156 230 132 144 756 752 152 203 191 238 826 654 646 953 952 950 174 262 348 608 940 858 860 478 800 949 788 496 398 834 882 050 968 938 972 706 417 760 702 941 690 408 960 682 222 710 462 360 643 116 072 446 586 776 512 578 934 901 604 946 376 554 532 524 064 232 566 498 943 484 504 458 969 480 426 440 748 434 422 430 694 340 008 428 981 104 414 192 188 976 931 977 170 418 598 320 404 454 973 634 124 886 352 364 368 400 356 392 558 985 967 970 818 978 704 214 242 780 840 090 136 516 932 678 784 807 208 270 332 600 980 344 292 324 936 328 951 410 548 108 096 986 068 937 975 060 974 084 048 764 052 590 044 971 533 051 032 012 944 036 810}
|
3
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class KsFormatValidator < ValidatesRussian::Validator
|
2
|
+
# see format here: http://ru.wikipedia.org/wiki/Корреспондентский_счёт
|
3
|
+
validates_using do |ks|
|
4
|
+
next false unless ks.size == 20
|
5
|
+
next false unless ks =~ /^\d+$/
|
6
|
+
next false unless ks[0..2] == '301'
|
7
|
+
end
|
8
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class OgrnFormatValidator < ValidatesRussian::Validator
|
2
|
+
validates_using do |ogrn|
|
3
|
+
next false unless ogrn =~ /^\d+$/
|
4
|
+
next false if ogrn.size != 13 && ogrn.size != 15
|
5
|
+
|
6
|
+
if ogrn.size == 13
|
7
|
+
next false unless (ogrn[0..-2].to_i % 11 % 10) == ogrn[-1].to_i
|
8
|
+
end
|
9
|
+
|
10
|
+
if ogrn.size == 15
|
11
|
+
next false unless (ogrn[0..-2].to_i % 13 % 10) == ogrn[-1].to_i
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class RsFormatValidator < ValidatesRussian::Validator
|
2
|
+
# see format here: http://ru.wikipedia.org/wiki/Расчётный_счёт
|
3
|
+
validates_using do |rs|
|
4
|
+
next false unless rs.size == 20
|
5
|
+
next false unless ValidatesRussian::OKV.include?(rs[5..7])
|
6
|
+
next false unless rs =~ /^\d+$/
|
7
|
+
end
|
8
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe KsFormatValidator do
|
4
|
+
before(:each) do
|
5
|
+
TestModel.reset_callbacks(:validate)
|
6
|
+
TestModel.validates(:field, ks_format: true)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should be valid for valid values' do
|
10
|
+
valid_kss = %w{
|
11
|
+
30101810642400000957
|
12
|
+
30106772134600000957
|
13
|
+
30143788710000000057
|
14
|
+
}
|
15
|
+
|
16
|
+
valid_kss.each do |ks|
|
17
|
+
model = TestModel.new
|
18
|
+
model.field = ks
|
19
|
+
model.should be_valid
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should not be valid for invalid values' do
|
24
|
+
invalid_kss = %w{
|
25
|
+
77150100
|
26
|
+
78fffffff
|
27
|
+
3010181064240000095
|
28
|
+
31101810642400000957
|
29
|
+
}.push('', ' ', nil, [], {})
|
30
|
+
|
31
|
+
invalid_kss.each do |ks|
|
32
|
+
model = TestModel.new
|
33
|
+
model.field = ks
|
34
|
+
model.should_not be_valid
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe OgrnFormatValidator do
|
4
|
+
before(:each) do
|
5
|
+
TestModel.reset_callbacks(:validate)
|
6
|
+
TestModel.validates(:field, ogrn_format: true)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should be valid for valid values' do
|
10
|
+
valid_ogrns = %w{
|
11
|
+
1025004701402
|
12
|
+
1047796885861
|
13
|
+
5077746887312
|
14
|
+
1077604011935
|
15
|
+
}
|
16
|
+
|
17
|
+
valid_ogrns.each do |ogrn|
|
18
|
+
model = TestModel.new
|
19
|
+
model.field = ogrn
|
20
|
+
model.should be_valid
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should not be valid for invalid values' do
|
25
|
+
invalid_ogrns = %w{
|
26
|
+
secret
|
27
|
+
507774688731
|
28
|
+
8934422763457
|
29
|
+
1345345523664
|
30
|
+
}.push('', ' ', nil, [], {})
|
31
|
+
|
32
|
+
invalid_ogrns.each do |ogrn|
|
33
|
+
model = TestModel.new
|
34
|
+
model.field = ogrn
|
35
|
+
model.should_not be_valid
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -7,33 +7,31 @@ describe OkpoFormatValidator do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
it 'should be valid for valid values' do
|
10
|
-
valid_okpos =
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
02372510
|
10
|
+
valid_okpos = %w{
|
11
|
+
57972160
|
12
|
+
13410254
|
13
|
+
0060621966
|
15
14
|
}
|
16
15
|
|
17
16
|
valid_okpos.each do |okpo|
|
18
17
|
model = TestModel.new
|
19
18
|
model.field = okpo
|
20
|
-
puts okpo
|
21
19
|
model.should be_valid
|
22
20
|
end
|
23
21
|
end
|
24
22
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
23
|
+
it 'should not be valid for invalid values' do
|
24
|
+
valid_okpos = %w{
|
25
|
+
57972163
|
26
|
+
579721634
|
27
|
+
secret
|
28
|
+
78fffffff
|
29
|
+
}.push('', ' ', nil, [], {})
|
32
30
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
31
|
+
valid_okpos.each do |okpo|
|
32
|
+
model = TestModel.new
|
33
|
+
model.field = okpo
|
34
|
+
model.should_not be_valid
|
35
|
+
end
|
36
|
+
end
|
39
37
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RsFormatValidator do
|
4
|
+
before(:each) do
|
5
|
+
TestModel.reset_callbacks(:validate)
|
6
|
+
TestModel.validates(:field, rs_format: true)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should be valid for valid values' do
|
10
|
+
valid_rss = %w{
|
11
|
+
58187404448375647329
|
12
|
+
77252937461205123501
|
13
|
+
52534060468985601001
|
14
|
+
}
|
15
|
+
|
16
|
+
valid_rss.each do |rs|
|
17
|
+
model = TestModel.new
|
18
|
+
model.field = rs
|
19
|
+
model.should be_valid
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should not be valid for invalid values' do
|
24
|
+
invalid_rss = %w{
|
25
|
+
77150100
|
26
|
+
gsDASsda
|
27
|
+
lol
|
28
|
+
52531406168985601001
|
29
|
+
7725234016120512350
|
30
|
+
}.push('', ' ', nil, [], {})
|
31
|
+
|
32
|
+
invalid_rss.each do |rs|
|
33
|
+
model = TestModel.new
|
34
|
+
model.field = rs
|
35
|
+
model.should_not be_valid
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validates_russian
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Antonov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -84,17 +84,24 @@ files:
|
|
84
84
|
- gemfiles/Gemfile.activemodel-3.0
|
85
85
|
- gemfiles/Gemfile.activemodel-4.0
|
86
86
|
- lib/validates_russian.rb
|
87
|
+
- lib/validates_russian/okv.rb
|
87
88
|
- lib/validates_russian/region_numbers.rb
|
88
89
|
- lib/validates_russian/validator.rb
|
89
90
|
- lib/validates_russian/version.rb
|
90
91
|
- lib/validators/inn_format_validator.rb
|
91
92
|
- lib/validators/kpp_format_validator.rb
|
93
|
+
- lib/validators/ks_format_validator.rb
|
94
|
+
- lib/validators/ogrn_format_validator.rb
|
92
95
|
- lib/validators/okpo_format_validator.rb
|
96
|
+
- lib/validators/rs_format_validator.rb
|
93
97
|
- spec/spec_helper.rb
|
94
98
|
- spec/support/test_model.rb
|
95
99
|
- spec/validators/inn_format_validator_spec.rb
|
96
100
|
- spec/validators/kpp_format_validator_spec.rb
|
101
|
+
- spec/validators/ks_format_validator_spec.rb
|
102
|
+
- spec/validators/ogrn_format_validator_spec.rb
|
97
103
|
- spec/validators/okpo_format_validator_spec.rb
|
104
|
+
- spec/validators/rs_format_validator_spec.rb
|
98
105
|
- validates_russian.gemspec
|
99
106
|
homepage: http://github.com/asiniy/validates_russian
|
100
107
|
licenses:
|
@@ -125,4 +132,7 @@ test_files:
|
|
125
132
|
- spec/support/test_model.rb
|
126
133
|
- spec/validators/inn_format_validator_spec.rb
|
127
134
|
- spec/validators/kpp_format_validator_spec.rb
|
135
|
+
- spec/validators/ks_format_validator_spec.rb
|
136
|
+
- spec/validators/ogrn_format_validator_spec.rb
|
128
137
|
- spec/validators/okpo_format_validator_spec.rb
|
138
|
+
- spec/validators/rs_format_validator_spec.rb
|