laranja 1.0.0 → 2.0.0
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 +7 -0
- data/.gitignore +0 -13
- data/.travis.yml +8 -1
- data/Gemfile +1 -1
- data/LICENSE.txt +1 -1
- data/README.md +14 -97
- data/Rakefile +5 -3
- data/laranja.gemspec +4 -3
- data/lib/laranja.rb +8 -26
- data/lib/laranja/data/pt-BR.yml +26 -0
- data/lib/laranja/generator.rb +43 -0
- data/lib/laranja/generators/pt-BR/documento.rb +37 -0
- data/lib/laranja/generators/pt-BR/endereco.rb +70 -0
- data/lib/laranja/generators/pt-BR/internet.rb +17 -0
- data/lib/laranja/generators/pt-BR/nome.rb +25 -0
- data/lib/laranja/generators/pt-BR/sexo.rb +13 -0
- data/lib/laranja/version.rb +1 -1
- data/test/pt-BR/test_documento.rb +65 -0
- data/test/pt-BR/test_endereco.rb +87 -0
- data/test/pt-BR/test_internet.rb +58 -0
- data/test/pt-BR/test_nome.rb +38 -0
- data/test/pt-BR/test_sexo.rb +21 -0
- data/test/test_helper.rb +5 -0
- metadata +57 -59
- data/.rspec +0 -2
- data/lib/laranja/address.rb +0 -77
- data/lib/laranja/cpf.rb +0 -24
- data/lib/laranja/gender.rb +0 -12
- data/lib/laranja/internet.rb +0 -26
- data/lib/laranja/name.rb +0 -33
- data/lib/static_data.yml +0 -26
- data/spec/address_spec.rb +0 -89
- data/spec/cpf_spec.rb +0 -62
- data/spec/gender_spec.rb +0 -23
- data/spec/internet_spec.rb +0 -77
- data/spec/name_spec.rb +0 -66
- data/spec/spec_helper.rb +0 -7
@@ -0,0 +1,25 @@
|
|
1
|
+
module Laranja
|
2
|
+
class Nome < Generator
|
3
|
+
class << self
|
4
|
+
def nome(sobrenomes = 1)
|
5
|
+
strf [
|
6
|
+
'%female_first_name ' + ('%last_name ' * sobrenomes).strip,
|
7
|
+
'%male_first_name ' + ('%last_name ' * sobrenomes).strip,
|
8
|
+
'%female_first_name ' + ('%last_name ' * sobrenomes) + '%female_suffix',
|
9
|
+
'%male_first_name ' + ('%last_name ' * sobrenomes) + '%male_suffix',
|
10
|
+
].sample
|
11
|
+
end
|
12
|
+
|
13
|
+
def primeiro_nome
|
14
|
+
strf [
|
15
|
+
'%female_first_name',
|
16
|
+
'%male_first_name'
|
17
|
+
].sample
|
18
|
+
end
|
19
|
+
|
20
|
+
def sobrenome
|
21
|
+
strf '%last_name'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/laranja/version.rb
CHANGED
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestDocumento < MiniTest::Test
|
4
|
+
def setup
|
5
|
+
Laranja.load('pt-BR')
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_cpf
|
9
|
+
assert_kind_of String, Laranja::Documento.cpf
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_cpf_is_valid
|
13
|
+
cpf = Laranja::Documento.cpf
|
14
|
+
v1, v2 = 0, 0
|
15
|
+
for i in 0..8
|
16
|
+
v1 += cpf[i].to_i * (10 - i)
|
17
|
+
v2 += cpf[i].to_i * (11 - i)
|
18
|
+
end
|
19
|
+
v1 = v1 % 11
|
20
|
+
if v1 < 2
|
21
|
+
v1 = 0
|
22
|
+
else
|
23
|
+
v1 = 11 - v1
|
24
|
+
end
|
25
|
+
v2 += v1 * 2
|
26
|
+
v2 = v2 % 11
|
27
|
+
if v2 < 2
|
28
|
+
v2 = 0
|
29
|
+
else
|
30
|
+
v2 = 11 - v2
|
31
|
+
end
|
32
|
+
assert_equal v1, cpf[-2].to_i
|
33
|
+
assert_equal v2, cpf[-1].to_i
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_cpf_with_arguments
|
37
|
+
assert_equal '3', Laranja::Documento.cpf(:ce)[-3]
|
38
|
+
assert_equal '5', Laranja::Documento.cpf(:BA)[-3]
|
39
|
+
assert_equal '7', Laranja::Documento.cpf('rj')[-3]
|
40
|
+
assert_equal '0', Laranja::Documento.cpf('RS')[-3]
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_cpf_formatado
|
44
|
+
cpf = Laranja::Documento.cpf_formatado
|
45
|
+
|
46
|
+
assert_kind_of String, cpf
|
47
|
+
assert_match /\d{3}\.\d{3}\.\d{3}-\d{2}/, cpf
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_rg
|
51
|
+
rg = Laranja::Documento.rg
|
52
|
+
|
53
|
+
assert_kind_of String, rg
|
54
|
+
assert_equal 9, rg.size
|
55
|
+
refute_match /\D/, rg
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_rg_formatado
|
59
|
+
rg = Laranja::Documento.rg_formatado
|
60
|
+
|
61
|
+
assert_kind_of String, rg
|
62
|
+
assert_equal 12, rg.size
|
63
|
+
assert_match /\d{2}\.\d{3}\.\d{3}-\d{1}/, rg
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestEndereco < MiniTest::Test
|
4
|
+
def setup
|
5
|
+
Laranja.load('pt-BR')
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_uf
|
9
|
+
uf = Laranja::Endereco.uf
|
10
|
+
|
11
|
+
assert_kind_of String, uf
|
12
|
+
refute_empty uf
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_uf_sigla
|
16
|
+
uf = Laranja::Endereco.uf_sigla
|
17
|
+
|
18
|
+
assert_kind_of String, uf
|
19
|
+
refute_empty uf
|
20
|
+
assert_equal 2, uf.size
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_cep
|
24
|
+
cep = Laranja::Endereco.cep
|
25
|
+
|
26
|
+
assert_kind_of String, cep
|
27
|
+
assert_equal 8, cep.size
|
28
|
+
assert_match /\d{8}/, cep
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_cep_with_uf
|
32
|
+
assert_equal '6', Laranja::Endereco.cep(:ce)[0]
|
33
|
+
assert_equal '4', Laranja::Endereco.cep(:BA)[0]
|
34
|
+
assert_equal '2', Laranja::Endereco.cep('rj')[0]
|
35
|
+
assert_equal '9', Laranja::Endereco.cep('RS')[0]
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_cep_formatado
|
39
|
+
cep = Laranja::Endereco.cep_formatado
|
40
|
+
|
41
|
+
assert_kind_of String, cep
|
42
|
+
assert_equal 9, cep.size
|
43
|
+
assert_match /\d{5}-\d{3}/, cep
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_cep_formatado_with_uf
|
47
|
+
assert_equal '6', Laranja::Endereco.cep_formatado(:ce)[0]
|
48
|
+
assert_equal '4', Laranja::Endereco.cep_formatado(:BA)[0]
|
49
|
+
assert_equal '2', Laranja::Endereco.cep_formatado('rj')[0]
|
50
|
+
assert_equal '9', Laranja::Endereco.cep_formatado('RS')[0]
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_cidade
|
54
|
+
cidade = Laranja::Endereco.cidade
|
55
|
+
|
56
|
+
assert_kind_of String, cidade
|
57
|
+
refute_empty cidade
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_rua
|
61
|
+
rua = Laranja::Endereco.rua
|
62
|
+
|
63
|
+
assert_kind_of String, rua
|
64
|
+
refute_empty rua
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_bairro
|
68
|
+
bairro = Laranja::Endereco.bairro
|
69
|
+
|
70
|
+
assert_kind_of String, bairro
|
71
|
+
refute_empty bairro
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_complemento
|
75
|
+
complemento = Laranja::Endereco.complemento
|
76
|
+
|
77
|
+
assert_kind_of String, complemento
|
78
|
+
refute_empty complemento
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_numero
|
82
|
+
numero = Laranja::Endereco.numero
|
83
|
+
|
84
|
+
assert_kind_of String, numero
|
85
|
+
assert_match /\d+/, numero
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestInternet < MiniTest::Test
|
4
|
+
def setup
|
5
|
+
Laranja.load('pt-BR')
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_email
|
9
|
+
email = Laranja::Internet.email
|
10
|
+
|
11
|
+
assert_kind_of String, email
|
12
|
+
assert_match /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i, email
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_email_with_parameter
|
16
|
+
email = Laranja::Internet.email('John Doe')
|
17
|
+
|
18
|
+
assert_kind_of String, email
|
19
|
+
assert_match /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i, email
|
20
|
+
assert_includes email, 'john'
|
21
|
+
assert_includes email, 'doe'
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_username
|
25
|
+
username = Laranja::Internet.username
|
26
|
+
|
27
|
+
assert_kind_of String, username
|
28
|
+
refute_empty username
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_username_with_name_parameter
|
32
|
+
username = Laranja::Internet.username('John Doe')
|
33
|
+
|
34
|
+
assert_kind_of String, username
|
35
|
+
refute_empty username
|
36
|
+
assert_includes username, 'john'
|
37
|
+
assert_includes username, 'doe'
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_username_with_name_and_separator_parameter
|
41
|
+
assert_equal 'john-doe', Laranja::Internet.username('John Doe', ['-'])
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_password
|
45
|
+
password = Laranja::Internet.password
|
46
|
+
|
47
|
+
assert_kind_of String, password
|
48
|
+
refute_match /\W/, password
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_password_with_min
|
52
|
+
assert_operator Laranja::Internet.password(32).size, :>=, 32
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_password_with_min_and_max
|
56
|
+
assert_equal 64, Laranja::Internet.password(64, 64).size
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestNome < MiniTest::Test
|
4
|
+
def setup
|
5
|
+
Laranja.load('pt-BR')
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_nome
|
9
|
+
nome = Laranja::Nome.nome
|
10
|
+
|
11
|
+
assert_kind_of String, nome
|
12
|
+
assert_operator nome.split.size, :>=, 2
|
13
|
+
assert_operator nome.split.size, :<=, 3
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_nome_with_parameters
|
17
|
+
n = 1 + rand(3)
|
18
|
+
nome = Laranja::Nome.nome(n)
|
19
|
+
|
20
|
+
assert_kind_of String, nome
|
21
|
+
assert_operator nome.split.size, :>=, n + 1
|
22
|
+
assert_operator nome.split.size, :<=, n + 2
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_primeiro_nome
|
26
|
+
nome = Laranja::Nome.primeiro_nome
|
27
|
+
|
28
|
+
assert_kind_of String, nome
|
29
|
+
assert_equal 1, nome.split.size
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_sobrenome
|
33
|
+
nome = Laranja::Nome.sobrenome
|
34
|
+
|
35
|
+
assert_kind_of String, nome
|
36
|
+
assert_equal 1, nome.split.size
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestSexo < MiniTest::Test
|
4
|
+
def setup
|
5
|
+
Laranja.load('pt-BR')
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_sexo
|
9
|
+
sexo = Laranja::Sexo.sexo
|
10
|
+
|
11
|
+
assert_kind_of String, sexo
|
12
|
+
refute_empty sexo
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_sigla
|
16
|
+
sexo = Laranja::Sexo.sigla
|
17
|
+
|
18
|
+
assert_kind_of String, sexo
|
19
|
+
assert_equal 1, sexo.size
|
20
|
+
end
|
21
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
CHANGED
@@ -1,80 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: laranja
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Oscar Esgalha
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-05-22 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: i18n
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.7'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.7'
|
14
27
|
- !ruby/object:Gem::Dependency
|
15
28
|
name: safe_yaml
|
16
29
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
30
|
requirements:
|
19
|
-
- -
|
31
|
+
- - "~>"
|
20
32
|
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
33
|
+
version: '1.0'
|
22
34
|
type: :runtime
|
23
35
|
prerelease: false
|
24
36
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
37
|
requirements:
|
27
|
-
- -
|
38
|
+
- - "~>"
|
28
39
|
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
40
|
+
version: '1.0'
|
30
41
|
- !ruby/object:Gem::Dependency
|
31
42
|
name: bundler
|
32
43
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
44
|
requirements:
|
35
|
-
- - ~>
|
45
|
+
- - "~>"
|
36
46
|
- !ruby/object:Gem::Version
|
37
47
|
version: '1.3'
|
38
48
|
type: :development
|
39
49
|
prerelease: false
|
40
50
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
51
|
requirements:
|
43
|
-
- - ~>
|
52
|
+
- - "~>"
|
44
53
|
- !ruby/object:Gem::Version
|
45
54
|
version: '1.3'
|
46
55
|
- !ruby/object:Gem::Dependency
|
47
56
|
name: rake
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
58
|
requirements:
|
51
|
-
- -
|
59
|
+
- - "~>"
|
52
60
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
61
|
+
version: '10.4'
|
54
62
|
type: :development
|
55
63
|
prerelease: false
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
65
|
requirements:
|
59
|
-
- -
|
66
|
+
- - "~>"
|
60
67
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
68
|
+
version: '10.4'
|
62
69
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
70
|
+
name: minitest
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
72
|
requirements:
|
67
|
-
- -
|
73
|
+
- - "~>"
|
68
74
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
75
|
+
version: '5.6'
|
70
76
|
type: :development
|
71
77
|
prerelease: false
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
79
|
requirements:
|
75
|
-
- -
|
80
|
+
- - "~>"
|
76
81
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
82
|
+
version: '5.6'
|
78
83
|
description: Grab some valid brazilian fake data. For testing.
|
79
84
|
email:
|
80
85
|
- oscaresgalha@gmail.com\n
|
@@ -82,64 +87,57 @@ executables: []
|
|
82
87
|
extensions: []
|
83
88
|
extra_rdoc_files: []
|
84
89
|
files:
|
85
|
-
- .gitignore
|
86
|
-
- .
|
87
|
-
- .travis.yml
|
90
|
+
- ".gitignore"
|
91
|
+
- ".travis.yml"
|
88
92
|
- Gemfile
|
89
93
|
- LICENSE.txt
|
90
94
|
- README.md
|
91
95
|
- Rakefile
|
92
96
|
- laranja.gemspec
|
93
97
|
- lib/laranja.rb
|
94
|
-
- lib/laranja/
|
95
|
-
- lib/laranja/
|
96
|
-
- lib/laranja/
|
97
|
-
- lib/laranja/
|
98
|
-
- lib/laranja/
|
98
|
+
- lib/laranja/data/pt-BR.yml
|
99
|
+
- lib/laranja/generator.rb
|
100
|
+
- lib/laranja/generators/pt-BR/documento.rb
|
101
|
+
- lib/laranja/generators/pt-BR/endereco.rb
|
102
|
+
- lib/laranja/generators/pt-BR/internet.rb
|
103
|
+
- lib/laranja/generators/pt-BR/nome.rb
|
104
|
+
- lib/laranja/generators/pt-BR/sexo.rb
|
99
105
|
- lib/laranja/version.rb
|
100
|
-
-
|
101
|
-
-
|
102
|
-
-
|
103
|
-
-
|
104
|
-
-
|
105
|
-
-
|
106
|
-
- spec/spec_helper.rb
|
106
|
+
- test/pt-BR/test_documento.rb
|
107
|
+
- test/pt-BR/test_endereco.rb
|
108
|
+
- test/pt-BR/test_internet.rb
|
109
|
+
- test/pt-BR/test_nome.rb
|
110
|
+
- test/pt-BR/test_sexo.rb
|
111
|
+
- test/test_helper.rb
|
107
112
|
homepage: https://github.com/oesgalha/laranja
|
108
113
|
licenses:
|
109
114
|
- MIT
|
115
|
+
metadata: {}
|
110
116
|
post_install_message:
|
111
117
|
rdoc_options: []
|
112
118
|
require_paths:
|
113
119
|
- lib
|
114
120
|
required_ruby_version: !ruby/object:Gem::Requirement
|
115
|
-
none: false
|
116
121
|
requirements:
|
117
|
-
- -
|
122
|
+
- - ">="
|
118
123
|
- !ruby/object:Gem::Version
|
119
124
|
version: '0'
|
120
|
-
segments:
|
121
|
-
- 0
|
122
|
-
hash: 1413268876876247429
|
123
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
|
-
none: false
|
125
126
|
requirements:
|
126
|
-
- -
|
127
|
+
- - ">="
|
127
128
|
- !ruby/object:Gem::Version
|
128
129
|
version: '0'
|
129
|
-
segments:
|
130
|
-
- 0
|
131
|
-
hash: 1413268876876247429
|
132
130
|
requirements: []
|
133
131
|
rubyforge_project:
|
134
|
-
rubygems_version:
|
132
|
+
rubygems_version: 2.4.5
|
135
133
|
signing_key:
|
136
|
-
specification_version:
|
134
|
+
specification_version: 4
|
137
135
|
summary: Laranja will generate valid brazilian fake data, which can be used for automated
|
138
136
|
testing or populating development databases.
|
139
137
|
test_files:
|
140
|
-
-
|
141
|
-
-
|
142
|
-
-
|
143
|
-
-
|
144
|
-
-
|
145
|
-
-
|
138
|
+
- test/pt-BR/test_documento.rb
|
139
|
+
- test/pt-BR/test_endereco.rb
|
140
|
+
- test/pt-BR/test_internet.rb
|
141
|
+
- test/pt-BR/test_nome.rb
|
142
|
+
- test/pt-BR/test_sexo.rb
|
143
|
+
- test/test_helper.rb
|