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.
@@ -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
@@ -0,0 +1,13 @@
1
+ module Laranja
2
+ class Sexo < Generator
3
+ class << self
4
+ def sexo
5
+ strf '%name'
6
+ end
7
+
8
+ def sigla
9
+ strf '%abbr'
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,3 +1,3 @@
1
1
  module Laranja
2
- VERSION = '1.0.0'
2
+ VERSION = '2.0.0'
3
3
  end
@@ -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
@@ -0,0 +1,5 @@
1
+ require 'codeclimate-test-reporter'
2
+ CodeClimate::TestReporter.start
3
+ require 'minitest/autorun'
4
+ require 'minitest/pride'
5
+ require 'laranja'
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: 1.0.0
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: 2014-02-10 00:00:00.000000000 Z
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: '0'
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: '0'
68
+ version: '10.4'
62
69
  - !ruby/object:Gem::Dependency
63
- name: rspec
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: '0'
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: '0'
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
- - .rspec
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/address.rb
95
- - lib/laranja/cpf.rb
96
- - lib/laranja/gender.rb
97
- - lib/laranja/internet.rb
98
- - lib/laranja/name.rb
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
- - lib/static_data.yml
101
- - spec/address_spec.rb
102
- - spec/cpf_spec.rb
103
- - spec/gender_spec.rb
104
- - spec/internet_spec.rb
105
- - spec/name_spec.rb
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: 1.8.25
132
+ rubygems_version: 2.4.5
135
133
  signing_key:
136
- specification_version: 3
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
- - spec/address_spec.rb
141
- - spec/cpf_spec.rb
142
- - spec/gender_spec.rb
143
- - spec/internet_spec.rb
144
- - spec/name_spec.rb
145
- - spec/spec_helper.rb
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