laranja 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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