faker-russian 0.0.1 → 0.0.2
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.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/.travis.yml +6 -0
- data/CHANGELOG.md +8 -0
- data/README.md +60 -9
- data/doc/english_readme.md +80 -0
- data/faker-russian.gemspec +2 -2
- data/lib/faker/russian/constants.rb +7 -0
- data/lib/faker/russian/inn.rb +24 -18
- data/lib/faker/russian/kpp.rb +39 -0
- data/lib/faker/russian/version.rb +5 -1
- data/lib/faker/russian.rb +4 -1
- data/spec/faker/russian/inn_spec.rb +28 -6
- data/spec/faker/russian/kpp_spec.rb +41 -0
- metadata +9 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 555645ea6b04286daa9446b352fe7f1566a560c3
|
|
4
|
+
data.tar.gz: e1c06a0eacb4de35f7257b99cd722c0c81eb7ee8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 931aa64d63425363848cc0600e5315fc6e029991ada16bb681e805272697079b8a2f14f38dc50db089ecf57523632df5269ebe4778102100f7d3af61d2e81e35
|
|
7
|
+
data.tar.gz: e5f0ec94da0ff210f8d5cb5098004c69d87321b4a7f98f28ccd60959d2b21c05bd8730c949324bc707f580cc37c8ce3147e5d68db15c5a098ad8b001d3c087cd
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
|
@@ -1,24 +1,75 @@
|
|
|
1
1
|
# Faker::Russian
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[[english_doc](doc/english_readme.md)]
|
|
4
|
+
[](http://badge.fury.io/rb/faker-russian)
|
|
5
|
+
[](https://travis-ci.org/asiniy/faker-russian)
|
|
6
|
+
[](https://codeclimate.com/github/asiniy/faker-russian)
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
Генерация русских значений: ИНН, ОКПО, КПП и т.д.
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
* [ИНН](http://ru.wikipedia.org/wiki/Идентификационный_номер_налогоплательщика) (Faker::Russian.inn)
|
|
11
|
+
* (TODO) [ОКПО](http://ru.wikipedia.org/wiki/Общероссийский_классификатор_предприятий_и_организаций) (Faker::Russian.okpo)
|
|
12
|
+
* [КПП](http://ru.wikipedia.org/wiki/Код_причины_постановки_на_учёт) (Faker::Russian.kpp)
|
|
13
|
+
* (TODO) [ОГРН](http://ru.wikipedia.org/wiki/Основной_государственный_регистрационный_номер) (Faker::Russian.ogrn)
|
|
14
|
+
* (TODO) [Корреспондентский счёт] (http://ru.wikipedia.org/wiki/Корреспондентский_счёт) (Faker::Russian.ks)
|
|
15
|
+
* (TODO) [Рассчётный счёт] (http://ru.wikipedia.org/wiki/Расчётный_счёт) (Faker::Russian.rs)
|
|
16
|
+
* (TODO) [OKATO](http://ru.wikipedia.org/wiki/Общероссийский_классификатор_объектов_административно-территориального_деления) (Faker::Russian.okato)
|
|
17
|
+
* (TODO) [СНИЛС](http://ru.wikipedia.org/wiki/Страховой_номер_индивидуального_лицевого_счёта) (Faker::Russian.snils)
|
|
18
|
+
* (TODO) [Значение паспорта](http://ru.wikipedia.org/wiki/Паспорт_гражданина_Российской_Федерации) (Faker::Russian.passport)
|
|
19
|
+
|
|
20
|
+
Для проверки сгенерированных значений можешь использовать [gem 'validates_russian'](https://github.com/asiniy/validates_russian)
|
|
21
|
+
|
|
22
|
+
## Установка
|
|
23
|
+
|
|
24
|
+
Добавь в Gemfile
|
|
8
25
|
|
|
9
26
|
gem 'faker-russian'
|
|
10
27
|
|
|
11
|
-
|
|
28
|
+
## Использование
|
|
29
|
+
|
|
30
|
+
### ИНН
|
|
31
|
+
|
|
32
|
+
Стандартно генерирует ИНН со случайным номером региона и со случайным типом (физ или юрлицо)
|
|
33
|
+
|
|
34
|
+
``` ruby
|
|
35
|
+
Faker::Russian.inn # => '183501166447'
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Можно указывать номер региона или тип
|
|
39
|
+
|
|
40
|
+
``` ruby
|
|
41
|
+
Faker::Russian.inn(region_number: '78') # => '7857296996'
|
|
42
|
+
Faker::Russian.inn(kind: :individual) # => '0229191612'
|
|
43
|
+
Faker::Russian.inn(kind: :legal) # => '366582211439'
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Также существуют последовательности, позволяющие получать одни и те же значения
|
|
47
|
+
|
|
48
|
+
``` ruby
|
|
49
|
+
Faker::Russian.inn(sequence_number: 1) # => '0956860593'
|
|
50
|
+
Faker::Russian.inn(sequence_number: 1) # => '0956860593'
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### КПП
|
|
54
|
+
|
|
55
|
+
Генерирует КПП со случайным номером региона
|
|
12
56
|
|
|
13
|
-
|
|
57
|
+
``` ruby
|
|
58
|
+
Faker::Russian.kpp # => '525601001'
|
|
59
|
+
```
|
|
14
60
|
|
|
15
|
-
|
|
61
|
+
Можно указать регион
|
|
16
62
|
|
|
17
|
-
|
|
63
|
+
``` ruby
|
|
64
|
+
Faker::Russian.kpp(region_number: 78) # => '784101001'
|
|
65
|
+
```
|
|
18
66
|
|
|
19
|
-
|
|
67
|
+
Также можно использовать последовательности (не более 1000 - количество КПП ограничено):
|
|
20
68
|
|
|
21
|
-
|
|
69
|
+
``` ruby
|
|
70
|
+
Faker::Russian.kpp(sequence_number: 1) # => '381201001'
|
|
71
|
+
Faker::Russian.inn(sequence_number: 1) # => '381201001'
|
|
72
|
+
```
|
|
22
73
|
|
|
23
74
|
## Contributing
|
|
24
75
|
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Faker::Russian
|
|
2
|
+
|
|
3
|
+
[[по-русски](../README.md)]
|
|
4
|
+
[](http://badge.fury.io/rb/faker-russian)
|
|
5
|
+
[](https://travis-ci.org/asiniy/faker-russian)
|
|
6
|
+
[](https://codeclimate.com/github/asiniy/faker-russian)
|
|
7
|
+
|
|
8
|
+
Generation of specific russian values
|
|
9
|
+
|
|
10
|
+
* [INN](http://ru.wikipedia.org/wiki/Идентификационный_номер_налогоплательщика) (Faker::Russian.inn) Russian analogue of VAT identification number
|
|
11
|
+
* (TODO) [OKPO](http://ru.wikipedia.org/wiki/Общероссийский_классификатор_предприятий_и_организаций) (Faker::Russian.okpo) Legal code
|
|
12
|
+
* [KPP](http://ru.wikipedia.org/wiki/Код_причины_постановки_на_учёт) (Faker::Russian.kpp) Code of reason for registration
|
|
13
|
+
* (TODO) [OGRN](http://ru.wikipedia.org/wiki/Основной_государственный_регистрационный_номер) (Faker::Russian.ogrn) Main state registration number
|
|
14
|
+
* (TODO) [Correspondent Account Value] (http://ru.wikipedia.org/wiki/Корреспондентский_счёт) (Faker::Russian.ks)
|
|
15
|
+
* (TODO) [Bank account value] (http://ru.wikipedia.org/wiki/Расчётный_счёт) (Faker::Russian.rs)
|
|
16
|
+
* (TODO) [OKATO](http://ru.wikipedia.org/wiki/Общероссийский_классификатор_объектов_административно-территориального_деления) (Faker::Russian.okato)
|
|
17
|
+
* (TODO) [SNILS](http://ru.wikipedia.org/wiki/Страховой_номер_индивидуального_лицевого_счёта) (Faker::Russian.snils)
|
|
18
|
+
* (TODO) [Passport value](http://ru.wikipedia.org/wiki/Паспорт_гражданина_Российской_Федерации) (Faker::Russian.passport)
|
|
19
|
+
|
|
20
|
+
You can use [gem 'validates_russian'](https://github.com/asiniy/validates_russian) for validates generated values
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
Add to Gemfile
|
|
25
|
+
|
|
26
|
+
gem 'validates_russian'
|
|
27
|
+
|
|
28
|
+
## Usage
|
|
29
|
+
|
|
30
|
+
### INN
|
|
31
|
+
|
|
32
|
+
Generate INN with random region number and type (:individual or :legal)
|
|
33
|
+
|
|
34
|
+
``` ruby
|
|
35
|
+
Faker::Russian.inn # => '183501166447'
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
You can set `region_number` and type
|
|
39
|
+
|
|
40
|
+
``` ruby
|
|
41
|
+
Faker::Russian.inn(region_number: '78') # => '7857296996'
|
|
42
|
+
Faker::Russian.inn(kind: :individual) # => '0229191612'
|
|
43
|
+
Faker::Russian.inn(kind: :legal) # => '366582211439'
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Also you can use sequences
|
|
47
|
+
|
|
48
|
+
``` ruby
|
|
49
|
+
Faker::Russian.inn(sequence_number: 1) # => '0956860593'
|
|
50
|
+
Faker::Russian.inn(sequence_number: 1) # => '0956860593'
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### KPP
|
|
54
|
+
|
|
55
|
+
Generate KPP with random region_number
|
|
56
|
+
|
|
57
|
+
``` ruby
|
|
58
|
+
Faker::Russian.kpp # => '525601001'
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
You can choose region
|
|
62
|
+
|
|
63
|
+
``` ruby
|
|
64
|
+
Faker::Russian.kpp(region_number: 78) # => '784101001'
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Also, you can use pseudo random sequence numbers (not much 1000, there is limited count of kpps)
|
|
68
|
+
|
|
69
|
+
``` ruby
|
|
70
|
+
Faker::Russian.kpp(sequence_number: 1) # => '381201001'
|
|
71
|
+
Faker::Russian.inn(sequence_number: 1) # => '381201001'
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Contributing
|
|
75
|
+
|
|
76
|
+
1. Fork it ( https://github.com/[my-github-username]/faker-russian/fork )
|
|
77
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
78
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
79
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
|
80
|
+
5. Create a new Pull Request
|
data/faker-russian.gemspec
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
-
require 'faker/russian
|
|
4
|
+
require 'faker/russian'
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = 'faker-russian'
|
|
8
|
-
spec.version = Faker::Russian
|
|
8
|
+
spec.version = Faker::Russian.version
|
|
9
9
|
spec.authors = ['Alex']
|
|
10
10
|
spec.email = ['kaburbundokel11g@inbox.ru']
|
|
11
11
|
spec.homepage = 'http://github.com/asiniy/faker-russian'
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
module Faker
|
|
2
|
+
module Russian
|
|
3
|
+
module SharedConstants
|
|
4
|
+
REGION_NUMBERS = %w{01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 83 86 87 89}
|
|
5
|
+
end
|
|
6
|
+
end
|
|
7
|
+
end
|
data/lib/faker/russian/inn.rb
CHANGED
|
@@ -2,9 +2,14 @@ module Faker
|
|
|
2
2
|
module Russian
|
|
3
3
|
module Inn
|
|
4
4
|
def inn(options = {})
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
if (options.keys - [:sequence_number, :region_number, :kind]).any?
|
|
6
|
+
raise 'wrong options. just :kind, :region_number or :sequence_number'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
sequence = find_sequence(options[:sequence_number])
|
|
10
|
+
region_number = find_region_number(options[:region_number], sequence)
|
|
11
|
+
kind = find_kind(options[:kind], sequence)
|
|
12
|
+
sequence_digits = find_digits(kind, sequence)
|
|
8
13
|
|
|
9
14
|
inn_without_check_digit = region_number + sequence_digits
|
|
10
15
|
inn_without_check_digit + check_digit(inn_without_check_digit)
|
|
@@ -12,29 +17,32 @@ module Faker
|
|
|
12
17
|
|
|
13
18
|
private
|
|
14
19
|
|
|
15
|
-
def
|
|
20
|
+
def find_sequence(number)
|
|
21
|
+
sequence = number || Random.rand(1_000_000_000)
|
|
22
|
+
Random.new(sequence)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def find_region_number(number = nil, sequence)
|
|
26
|
+
region_numbers = Faker::Russian::SharedConstants::REGION_NUMBERS
|
|
27
|
+
|
|
16
28
|
if number.present?
|
|
17
|
-
raise('there is no region with that number!') unless
|
|
18
|
-
number
|
|
29
|
+
raise('there is no region with that number!') unless region_numbers.include?(number.to_s)
|
|
30
|
+
number.to_s
|
|
19
31
|
else
|
|
20
|
-
|
|
32
|
+
region_numbers[sequence.rand(region_numbers.size)]
|
|
21
33
|
end
|
|
22
34
|
end
|
|
23
35
|
|
|
24
|
-
def find_kind(kind)
|
|
36
|
+
def find_kind(kind, sequence)
|
|
25
37
|
case kind
|
|
26
|
-
when :individual then
|
|
27
|
-
when
|
|
28
|
-
when nil then [:individual, :legal].sample
|
|
38
|
+
when :individual, :legal then kind
|
|
39
|
+
when nil then [:individual, :legal][sequence.rand(2)]
|
|
29
40
|
else raise 'there is no any kind other than :individual or :legal'
|
|
30
41
|
end
|
|
31
42
|
end
|
|
32
43
|
|
|
33
|
-
def
|
|
34
|
-
|
|
35
|
-
Random.srand(sequence)
|
|
36
|
-
|
|
37
|
-
(kind == :legal) ? Random.rand(1_000_000..9_999_999).to_s : Random.rand(10_000_000..99_999_999).to_s
|
|
44
|
+
def find_digits(kind, sequence)
|
|
45
|
+
(kind == :legal) ? sequence.rand(1_000_000..9_999_999).to_s : sequence.rand(10_000_000..99_999_999).to_s
|
|
38
46
|
end
|
|
39
47
|
|
|
40
48
|
def check_digit(digits)
|
|
@@ -49,8 +57,6 @@ module Faker
|
|
|
49
57
|
(p.each_with_index.inject(0){ |s, p| s + p[0] * inn[p[1]].to_i } % 11 % 10).to_s
|
|
50
58
|
end
|
|
51
59
|
|
|
52
|
-
REGION_NUMBERS = %w{01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 83 86 87 89} # TODO move to specific place
|
|
53
|
-
|
|
54
60
|
P10 = [2, 4, 10, 3, 5, 9, 4, 6, 8]
|
|
55
61
|
P11 = [7, 2, 4, 10, 3, 5, 9, 4, 6, 8]
|
|
56
62
|
P12 = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8]
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module Faker
|
|
2
|
+
module Russian
|
|
3
|
+
module Kpp
|
|
4
|
+
def kpp(options = {})
|
|
5
|
+
if (options.keys - [:sequence_number, :region_number]).any?
|
|
6
|
+
raise 'wrong options. just :region_number or :sequence_number'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
sequence = find_sequence(options[:sequence_number])
|
|
10
|
+
region_number = find_region_number(options[:region_number], sequence)
|
|
11
|
+
|
|
12
|
+
region_number + two_region_numbers(sequence) + '01001'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
def find_sequence(number)
|
|
18
|
+
sequence = number || Random.rand(1_000_000_000)
|
|
19
|
+
Random.new(sequence)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def find_region_number(number = nil, sequence)
|
|
23
|
+
region_numbers = Faker::Russian::SharedConstants::REGION_NUMBERS
|
|
24
|
+
|
|
25
|
+
if number.present?
|
|
26
|
+
raise('there is no region with that number!') unless region_numbers.include?(number.to_s)
|
|
27
|
+
number.to_s
|
|
28
|
+
else
|
|
29
|
+
region_numbers[sequence.rand(region_numbers.size)]
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def two_region_numbers(sequence)
|
|
34
|
+
sprintf '%02d', sequence.rand(100)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
data/lib/faker/russian.rb
CHANGED
|
@@ -7,29 +7,51 @@ describe Faker::Russian do
|
|
|
7
7
|
DummyModel.validates(:field, inn_format: true)
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
it '
|
|
10
|
+
it 'generate valid inn without arguments' do
|
|
11
11
|
100.times do
|
|
12
12
|
expect(DummyModel.new(field: Faker::Russian.inn)).to be_valid
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
it '
|
|
16
|
+
it 'generate valid inn with region number' do
|
|
17
17
|
100.times do
|
|
18
|
-
expect(DummyModel.new(field: Faker::Russian.inn(
|
|
18
|
+
expect(DummyModel.new(field: Faker::Russian.inn(region_number: 78))).to be_valid
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
it '
|
|
22
|
+
it 'generate valid inn with kind' do
|
|
23
23
|
100.times do
|
|
24
24
|
expect(DummyModel.new(field: Faker::Russian.inn(kind: [:individual, :legal].sample))).to be_valid
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
-
it '
|
|
29
|
-
|
|
28
|
+
it 'generate valid length for :individual' do
|
|
29
|
+
100.times do
|
|
30
|
+
expect(Faker::Russian.inn(kind: :individual).length).to eq(12)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it 'generate valid length for :legal' do
|
|
35
|
+
100.times do
|
|
36
|
+
expect(Faker::Russian.inn(kind: :legal).length).to eq(10)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it 'generate difference inns with sequence' do
|
|
41
|
+
sequenced_inns = 10000.times.map{ |n| Faker::Russian.inn(sequence_number: n) }
|
|
30
42
|
expect(sequenced_inns.size).to eq(sequenced_inns.uniq.size)
|
|
31
43
|
end
|
|
32
44
|
|
|
45
|
+
it 'generate same inns for sequence' do
|
|
46
|
+
array1 = 1000.times.map{ |n| Faker::Russian.inn(sequence_number: n) }
|
|
47
|
+
array2 = 1000.times.map{ |n| Faker::Russian.inn(sequence_number: n) }
|
|
48
|
+
expect(array1).to eq(array2)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it 'permit just a few options' do
|
|
52
|
+
expect { Faker::Russian.inn(shit: 'shit') }.to raise_error
|
|
53
|
+
end
|
|
54
|
+
|
|
33
55
|
it 'raise when selecting invalid region' do
|
|
34
56
|
expect{ Faker::Russian.inn(region_number: '90') }.to raise_error
|
|
35
57
|
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Faker::Russian do
|
|
4
|
+
describe '#kpp' do
|
|
5
|
+
before(:all) do
|
|
6
|
+
DummyModel.reset_callbacks(:validate)
|
|
7
|
+
DummyModel.validates(:field, kpp_format: true)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it 'generate valid kpp without arguments' do
|
|
11
|
+
100.times do
|
|
12
|
+
expect(DummyModel.new(field: Faker::Russian.kpp)).to be_valid
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'generate valid kpp with region number' do
|
|
17
|
+
100.times do
|
|
18
|
+
expect(DummyModel.new(field: Faker::Russian.kpp(region_number: 78))).to be_valid
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'generate difference kpps with sequence' do
|
|
23
|
+
sequenced_kpps = 100.times.map{ |n| Faker::Russian.kpp(sequence_number: n) }
|
|
24
|
+
expect(sequenced_kpps.size).to eq(sequenced_kpps.uniq.size)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'generate same kpps for sequence' do
|
|
28
|
+
array1 = 1000.times.map{ |n| Faker::Russian.kpp(sequence_number: n) }
|
|
29
|
+
array2 = 1000.times.map{ |n| Faker::Russian.kpp(sequence_number: n) }
|
|
30
|
+
expect(array1).to eq(array2)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it 'permit just a few options' do
|
|
34
|
+
expect{ Faker::Russian.kpp(shit: 'shit') }.to raise_error
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'raise when selecting invalid region' do
|
|
38
|
+
expect{ Faker::Russian.kpp(region_number: '90') }.to raise_error
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: faker-russian
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alex
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-
|
|
11
|
+
date: 2014-07-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -88,15 +88,21 @@ extensions: []
|
|
|
88
88
|
extra_rdoc_files: []
|
|
89
89
|
files:
|
|
90
90
|
- ".gitignore"
|
|
91
|
+
- ".travis.yml"
|
|
92
|
+
- CHANGELOG.md
|
|
91
93
|
- Gemfile
|
|
92
94
|
- LICENSE.txt
|
|
93
95
|
- README.md
|
|
94
96
|
- Rakefile
|
|
97
|
+
- doc/english_readme.md
|
|
95
98
|
- faker-russian.gemspec
|
|
96
99
|
- lib/faker/russian.rb
|
|
100
|
+
- lib/faker/russian/constants.rb
|
|
97
101
|
- lib/faker/russian/inn.rb
|
|
102
|
+
- lib/faker/russian/kpp.rb
|
|
98
103
|
- lib/faker/russian/version.rb
|
|
99
104
|
- spec/faker/russian/inn_spec.rb
|
|
105
|
+
- spec/faker/russian/kpp_spec.rb
|
|
100
106
|
- spec/spec_helper.rb
|
|
101
107
|
- spec/support/dummy_model.rb
|
|
102
108
|
homepage: http://github.com/asiniy/faker-russian
|
|
@@ -125,5 +131,6 @@ specification_version: 4
|
|
|
125
131
|
summary: Faker russian specific values. INN, OGRN, et.c.
|
|
126
132
|
test_files:
|
|
127
133
|
- spec/faker/russian/inn_spec.rb
|
|
134
|
+
- spec/faker/russian/kpp_spec.rb
|
|
128
135
|
- spec/spec_helper.rb
|
|
129
136
|
- spec/support/dummy_model.rb
|