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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 544d7bfc5a8515ea8c176c9672c92507b82b93d3
4
- data.tar.gz: 943fc064b8196c5680c1b20b255e09638cbb28d3
3
+ metadata.gz: ee7c009be5b8e81ccbb4081ca49a4f37b3ed0bfa
4
+ data.tar.gz: 2a9f183c335bd7eb0709794332417a1d3d55efa5
5
5
  SHA512:
6
- metadata.gz: 086bfd6f6337c324679e6c21a6cf44f012ecc3ca39b69cab572bdc616e24bfa61e15a86d9846e9ba472909f724a0805baa389fcf37f6a508945e2b476a74394a
7
- data.tar.gz: 99c3142c879719be955df00975661ab7a61d4bf9ecd9cbc6271d5da2ad865773ff4cd3f6c63d89a533d4aaa7555d85f48ca063c6b08823189389e313c39319ec
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
- * ОГРН (TODO)
16
- * Корреспондентский счёт (TODO)
17
- * Рассчётный счёт (TODO)
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
 
@@ -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 (TODO)
15
- * Correspondent Account Value (TODO)
16
- * Bank Account Value (TODO)
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
@@ -1,3 +1,3 @@
1
1
  module ValidatesRussian
2
- VERSION = '0.0.4'
2
+ VERSION = '0.0.5'
3
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 = %w{
11
- 57972160
12
- 13410254
13
- 0060621966
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
- # it 'should not be valid for invalid values' do
26
- # invalid_okpos = %w{
27
- # 57972163
28
- # 579721634
29
- # secret
30
- # 78fffffff
31
- # }.push('', ' ', nil, [], {})
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
- # invalid_okpos.each do |okpo|
34
- # model = TestModel.new
35
- # model.field = okpo
36
- # model.should_not be_valid
37
- # end
38
- # end
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
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-20 00:00:00.000000000 Z
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