laranja 0.0.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,4 +1,3 @@
1
1
  source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in laranja.gemspec
4
2
  gemspec
3
+ gem 'coveralls', require: false
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Laranja
2
2
  [![Build Status](https://travis-ci.org/oesgalha/laranja.png)](https://travis-ci.org/oesgalha/laranja)
3
+ [![Code Climate](https://codeclimate.com/github/oesgalha/laranja.png)](https://codeclimate.com/github/oesgalha/laranja)
4
+ [![Coverage Status](https://coveralls.io/repos/oesgalha/laranja/badge.png)](https://coveralls.io/r/oesgalha/laranja)
3
5
 
4
6
  Laranja is a ruby gem which generates random fake valid data.
5
7
  It aims to help testing brazilian applications, since it generates specific data from the country.
@@ -26,17 +28,19 @@ Or install it yourself as:
26
28
  ```ruby
27
29
  require 'laranja'
28
30
 
29
- Laranja::Name.name # Vitória Pereira
31
+ Laranja::Name.name # Vitória Pereira
30
32
 
31
- Laranja::Name.name(2) # Ígor Braga Santos => Name with 2 surnames
33
+ Laranja::Name.name(2) # Ígor Braga Santos => Name with 2 surnames
32
34
 
33
- Laranja::Name.first_name # Raul
35
+ Laranja::Name.first_name # Raul
34
36
 
35
- Laranja::Name.last_name # Moreira
37
+ Laranja::Name.last_name # Moreira
36
38
 
37
- Laranja::Name.strfname(3, true, true) # Fabrício Santos Costa Reis Junior => Name with 3 surnames, suffix and first name
39
+ Laranja::Name.strf '%male_first_name %last_name %last_name %last_name %male_suffix' # Fabrício Santos Costa Reis Junior
38
40
 
39
- Laranja::Name.strfname(1, true, false) # Albuquerque Neto => Name with 1 surname, suffix but without first name
41
+ Laranja::Name.strf '%last_name %male_suffix' # Albuquerque Neto
42
+
43
+ Laranja::Name.strf '%title %female_first_name %last_name' # Condessa Ofélia Macedo
40
44
  ```
41
45
 
42
46
  ### CPF
@@ -64,23 +68,62 @@ require 'laranja'
64
68
 
65
69
  Laranja::Internet.email # elsionogueira@gmail.com
66
70
 
67
- Laranja::Internet.strfemail('Vitória Pereira') # vitria.pereira@yahoo.com
71
+ Laranja::Internet.email_for('Vitória Pereira') # vitria.pereira@yahoo.com
68
72
 
69
73
  Laranja::Internet.username # marli.macedo
70
74
 
71
- Laranja::Internet.strfusername('Ana Machado') # anamachado
75
+ Laranja::Internet.username_for('Ana Machado') # anamachado
72
76
 
73
- Laranja::Internet.strfusername('Joel Melo', ['-']) # joel-melo => Username with one of the specified separators ( - )
77
+ Laranja::Internet.username_for('Joel Melo', ['-']) # joel-melo => Username with one of the specified separators ( - )
74
78
 
75
79
  Laranja::Internet.password # Pq9vD8VJzttr6vrB77hDCp2LVK8iSm1iUjezQuS9dlah0EUukfQDPLf5ad0e6WwsrI39
76
80
 
77
81
  Laranja::Internet.password(2, 6) # COW => Password with a random number of charaters between 2 and 6 (the default is 8 and 128)
78
82
  ```
79
83
 
80
- ## Contributing
84
+ ### Gender
85
+
86
+ ```ruby
87
+ require 'laranja'
88
+
89
+ Laranja::Gender.gender # Feminino
90
+
91
+ Laranja::Gender.abbr # M
92
+ ```
93
+
94
+ ### Address
95
+
96
+ ```ruby
97
+ require 'laranja'
98
+
99
+ Laranja::Address.city # Santo Rafael do Sul
100
+
101
+ Laranja::Address.district # Parque Condessa Carvalho
102
+
103
+ Laranja::Address.street # Avenida Barão Norberto Martins Neto
104
+
105
+ Laranja::Address.secondary # Lote 937
106
+
107
+ Laranja::Address.number # 608
108
+
109
+ Laranja::Address.formatted_cep # 43519-000
110
+
111
+ Laranja::Address.cep # 49738343
112
+
113
+ Laranja::Address.cep('SP') # 13663282
114
+
115
+ Laranja::Address.formatted_cep(:am) # 64787-398
116
+
117
+ Laranja::Address.uf # Rondônia
118
+
119
+ Laranja::Address.uf_abbr # MG
120
+ ```
121
+
122
+ ## Roadmap
81
123
 
82
- 1. Fork it
83
- 2. Create your feature branch (`git checkout -b my-new-feature`)
84
- 3. Commit your changes (`git commit -am 'Add some feature'`)
85
- 4. Push to the branch (`git push origin my-new-feature`)
86
- 5. Create new Pull Request
124
+ - Jobs
125
+ - Phones
126
+ - Dates
127
+ - RG
128
+ - Credit Cards
129
+ - Bank Accounts
@@ -4,18 +4,18 @@ SafeYAML::OPTIONS[:default_mode] = :safe
4
4
  module Laranja
5
5
  class Base
6
6
 
7
- def self.specified(format)
8
- format.gsub(/%([^%\s\z]+)/) { data_sample($1) }
7
+ def self.strf(format)
8
+ format.gsub(/(:(?<scope>[^:\s\z]+))?%(?<key>[^%\s\z]+)/) { data_sample($~[:key], $~[:scope]) }
9
9
  end
10
10
 
11
11
  protected
12
12
 
13
- def self.data_sample(key)
14
- data(key).sample
13
+ def self.data_sample(key, scope = nil)
14
+ data(key, scope).sample
15
15
  end
16
16
 
17
- def self.data(key)
18
- static_data[to_s.split('::')[-1].downcase][key]
17
+ def self.data(key, scope = nil)
18
+ static_data[scope || to_s.split('::')[-1].downcase][key]
19
19
  end
20
20
 
21
21
  private
@@ -26,6 +26,9 @@ module Laranja
26
26
  end
27
27
  end
28
28
 
29
+ require 'laranja/address'
29
30
  require 'laranja/cpf'
31
+ require 'laranja/gender'
30
32
  require 'laranja/internet'
31
- require 'laranja/name'
33
+ require 'laranja/name'
34
+ require 'laranja/version'
@@ -0,0 +1,77 @@
1
+ module Laranja
2
+ class Address < Base
3
+
4
+ def self.city
5
+ strf [
6
+ '%city_prefix :name%last_name',
7
+ '%city_prefix :name%last_name %city_suffix',
8
+ '%city_prefix %female_city_prefix :name%female_first_name',
9
+ '%city_prefix %male_city_prefix :name%male_first_name',
10
+ '%city_prefix %female_city_prefix :name%female_first_name %city_suffix',
11
+ '%city_prefix %male_city_prefix :name%male_first_name %city_suffix',
12
+ ':name%last_name %city_suffix',
13
+ '%female_city_prefix :name%female_first_name',
14
+ '%male_city_prefix :name%male_first_name',
15
+ '%female_city_prefix :name%female_first_name %city_suffix',
16
+ '%male_city_prefix :name%male_first_name %city_suffix'
17
+ ].sample
18
+ end
19
+
20
+ def self.district
21
+ strf [
22
+ '%district_prefix :name%last_name',
23
+ '%district_prefix :name%male_title :name%last_name',
24
+ '%district_prefix :name%female_title :name%last_name'
25
+ ].sample
26
+ end
27
+
28
+ def self.street
29
+ strf [
30
+ '%log_prefix :name%female_title :name%female_first_name :name%last_name',
31
+ '%log_prefix :name%female_first_name :name%last_name',
32
+ '%log_prefix :name%male_title :name%male_first_name :name%last_name :name%male_suffix',
33
+ '%log_prefix :name%male_title :name%male_first_name :name%last_name',
34
+ '%log_prefix :name%male_first_name :name%last_name :name%male_suffix',
35
+ '%log_prefix :name%male_first_name :name%last_name'
36
+ ].sample
37
+ end
38
+
39
+ def self.secondary
40
+ strf('%secondary ') + (1 + rand(999)).to_s
41
+ end
42
+
43
+ def self.number
44
+ (1 + rand(999)).to_s
45
+ end
46
+
47
+ def self.formatted_cep(ufab = nil)
48
+ cep_builder(true, rand(6) != 0, ufab)
49
+ end
50
+
51
+ def self.cep(ufab = nil)
52
+ cep_builder(false, rand(6) != 0, ufab)
53
+ end
54
+
55
+ def self.uf
56
+ strf '%uf_name'
57
+ end
58
+
59
+ def self.uf_abbr
60
+ strf '%uf_abbr'
61
+ end
62
+
63
+ private
64
+
65
+ def self.cep_builder(formatted, suffix = true, ufab = nil)
66
+ c = unufy(ufab, 'U####')
67
+ c += '-' if formatted
68
+ c += suffix ? '###' : '000'
69
+ c.gsub(/#/) { rand(10).to_s }
70
+ end
71
+
72
+ def self.unufy(ufab, str)
73
+ str.sub(/U/, ufab.nil? ? '#' : data('codigo_cep')[ufab.to_s.downcase].to_s)
74
+ end
75
+
76
+ end
77
+ end
@@ -0,0 +1,12 @@
1
+ module Laranja
2
+ class Gender < Base
3
+
4
+ def self.gender
5
+ strf '%name'
6
+ end
7
+
8
+ def self.abbr
9
+ strf '%abbr'
10
+ end
11
+ end
12
+ end
@@ -1,20 +1,20 @@
1
1
  module Laranja
2
2
  class Internet < Base
3
3
 
4
- def self.strfemail(name)
5
- specified strfusername(name) + '@%email'
4
+ def self.email_for(name)
5
+ strf username_for(name) + '@%email'
6
6
  end
7
7
 
8
8
  def self.email
9
- strfemail(Laranja::Name.name)
9
+ email_for(Laranja::Name.name)
10
10
  end
11
11
 
12
- def self.strfusername(name, sep = ['', '.', '_'])
12
+ def self.username_for(name, sep = ['', '.', '_'])
13
13
  name.gsub(/[^a-zA-Z0-9\s]/, '').split.join(sep.sample).downcase
14
14
  end
15
15
 
16
16
  def self.username
17
- strfusername(Laranja::Name.name)
17
+ username_for(Laranja::Name.name)
18
18
  end
19
19
 
20
20
  def self.password(min = 8, max = 128)
@@ -1,24 +1,32 @@
1
1
  module Laranja
2
2
  class Name < Base
3
3
 
4
- def self.strfname(last_names = 1, suffix = false, first_name = true)
5
- f = ''
6
- f += '%first_name' if first_name
7
- f += ' %last_name' * last_names
8
- f += ' %suffix' if suffix
9
- specified f.strip
10
- end
11
-
12
4
  def self.name(last_names = 1)
13
- strfname last_names, rand(9) == 0
5
+ strf format_builder(Laranja::Gender.abbr, last_names, rand(9) == 0)
14
6
  end
15
7
 
16
8
  def self.first_name
17
- strfname 0
9
+ strf format_builder(Laranja::Gender.abbr, 0)
18
10
  end
19
11
 
20
12
  def self.last_name
21
- strfname 1, false, false
13
+ strf format_builder(Laranja::Gender.abbr, 1, false, false)
14
+ end
15
+
16
+ private
17
+
18
+ def self.format_builder(gender, last_names = 1, suffix = false, first_name = true)
19
+ f = ''
20
+ f += genderfy(gender, 'first_name ') if first_name
21
+ f += '%last_name ' * last_names
22
+ # TODO: Only men have suffix?
23
+ f += genderfy(gender, 'suffix ') if suffix && gender.downcase == 'm'
24
+ f
25
+ end
26
+
27
+ def self.genderfy(gender, attribute)
28
+ g = gender.downcase == 'f' ? 'female' : 'male'
29
+ "%#{g}_#{attribute}"
22
30
  end
23
31
 
24
32
  end
@@ -1,3 +1,3 @@
1
1
  module Laranja
2
- VERSION = '0.0.2'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -1,9 +1,26 @@
1
1
  laranja:
2
+ gender:
3
+ name: ['Feminino', 'Masculino']
4
+ abbr: ['F', 'M']
5
+ address:
6
+ log_prefix: ['Alameda', 'Avenida', 'Marginal', 'Rodovia', 'Rua', 'Travessa', 'Viela']
7
+ city_prefix: ['Águas de', 'Campos de', 'Monte', 'Nova', 'Velha']
8
+ female_city_prefix: ['Nossa Senhora', 'Santa']
9
+ male_city_prefix: ['Santo', 'São']
10
+ city_suffix: ['do Norte', 'do Sul']
11
+ district_prefix: ['Bosque', 'Chácara', 'Jardim', 'Monte', 'Parque', 'Vila']
12
+ secondary: ['Ap', 'Casa', 'Lote', 'Quadra']
13
+ codigo_cep: { ac: 6, al: 5, ap: 6, am: 6, ba: 4, ce: 6, df: 7, es: 2, go: 7, ma: 6, mt: 7, ms: 7, mg: 3, pa: 6, pb: 5, pr: 8, pe: 5, pi: 6, rj: 2, rn: 5, rs: 9, ro: 7, rr: 6, sc: 8, sp: 1, se: 4, to: 7 }
14
+ uf_abbr: ['AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MT', 'MS', 'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC', 'SP', 'SE', 'TO']
15
+ uf_name: ['Acre', 'Alagoas', 'Amapá', 'Amazonas', 'Bahia', 'Ceará', 'Distrito Federal', 'Espírito Santo', 'Goiás', 'Maranhão', 'Mato Grosso', 'Mato Grosso do Sul', 'Minas Gerais', 'Pará', 'Paraíba', 'Paraná', 'Pernambuco', 'Piauí', 'Rio de Janeiro', 'Rio Grande do Norte', 'Rio Grande do Sul', 'Rondônia', 'Roraima', 'Santa Catarina', 'São Paulo', 'Sergipe', 'Tocantins']
2
16
  internet:
3
17
  email: ['bol.com.br', 'gmail.com', 'hotmail.com', 'live.com', 'terra.com.br', 'uol.com.br', 'yahoo.com']
4
18
  name:
5
- first_name: ['Alessandro', 'Alessandra', 'Alexandre', 'Aline', 'Antônio', 'Breno', 'Bruna', 'Carlos', 'Carla', 'Célia', 'Cecília', 'César', 'Danilo', 'Dalila', 'Deneval', 'Eduardo', 'Eduarda', 'Esther', 'Elísio', 'Fábio', 'Fabrício', 'Fabrícia', 'Félix', 'Felícia', 'Feliciano', 'Frederico', 'Fabiano', 'Gustavo', 'Guilherme', 'Gúbio', 'Heitor', 'Hélio', 'Hugo', 'Isabel', 'Isabela', 'Ígor', 'João', 'Joana', 'Júlio César', 'Júlio', 'Júlia', 'Janaína', 'Karla', 'Kléber', 'Lucas', 'Lorena', 'Lorraine', 'Larissa', 'Ladislau', 'Marcos', 'Meire', 'Marcelo', 'Marcela', 'Margarida', 'Mércia', 'Márcia', 'Marli', 'Morgana', 'Maria', 'Norberto', 'Natália', 'Nataniel', 'Núbia', 'Ofélia', 'Paulo', 'Paula', 'Pablo', 'Pedro', 'Raul', 'Rafael', 'Rafaela', 'Ricardo', 'Roberto', 'Roberta', 'Sílvia', 'Sílvia', 'Silas', 'Suélen', 'Sara', 'Salvador', 'Sirineu', 'Talita', 'Tertuliano', 'Vicente', 'Víctor', 'Vitória', 'Yango', 'Yago', 'Yuri', 'Washington', 'Warley']
6
- last_name: ['Albuquerque', 'Barros', 'Batista', 'Braga', 'Costa', 'Carvalho', 'Franco', 'Macedo', 'Martins', 'Melo', 'Moraes', 'Moreira', 'Nogueira', 'Oliveira', 'Pereira', 'Reis', 'Santos', 'Saraiva', 'Silva', 'Souza', 'Xavier']
7
- suffix: ['Junior', 'Neto', 'Filho']
19
+ male_title: ['Barão', 'Conde', 'Dom', 'Dr', 'Duque', 'Engenheiro', 'General', 'Imperador', 'Presidente', 'Professor']
20
+ female_title: ['Baronesa', 'Condessa', 'Dra', 'Duquesa', 'Engenheira', 'Imperatriz', 'Princesa', 'Professora']
21
+ male_first_name: ['Alessandro', 'Alexandre', 'Antônio', 'Breno', 'Carlos', 'César', 'Danilo', 'Deneval', 'Eduardo', 'Esther', 'Elísio', 'Fábio', 'Fabrício', 'Félix', 'Feliciano', 'Frederico', 'Fabiano', 'Gustavo', 'Guilherme', 'Gúbio', 'Heitor', 'Hélio', 'Hugo', 'Ígor', 'João', 'Júlio', 'Kléber', 'Lucas', 'Marcos', 'Marcelo', 'Norberto', 'Paulo', 'Pablo', 'Pedro', 'Raul', 'Rafael', 'Ricardo', 'Roberto', 'Tertuliano', 'Vicente', 'Víctor', 'Yuri', 'Washington']
22
+ female_first_name: ['Alessandra', 'Aline', 'Bruna', 'Carla', 'Célia', 'Cecília', 'Dalila', 'Eduarda', 'Fabrícia', 'Felícia', 'Isabel', 'Isabela', 'Joana', 'Júlia', 'Janaína', 'Karla', 'Lorena', 'Lorraine', 'Larissa', 'Meire', 'Marcela', 'Margarida', 'Mércia', 'Márcia', 'Marli', 'Morgana', 'Maria', 'Natália', 'Núbia', 'Ofélia', 'Paula', 'Rafaela', 'Roberta', 'Sílvia', 'Suélen', 'Sara', 'Talita', 'Vitória']
23
+ last_name: ['Albuquerque', 'Barros', 'Batista', 'Braga', 'Carvalho', 'Costa', 'Cunha', 'Franco', 'Ladislau', 'Macedo', 'Martins', 'Melo', 'Moraes', 'Moreira', 'Nogueira', 'Oliveira', 'Pereira', 'Reis', 'Santos', 'Saraiva', 'Silva', 'Souza', 'Xavier']
24
+ male_suffix: ['Junior', 'Neto', 'Filho']
8
25
  cpf:
9
26
  codigo_uf: { ac: 2, al: 4, ap: 2, am: 2, ba: 5, ce: 3, df: 1, es: 7, go: 1, ma: 3, mt: 1, ms: 1, mg: 6, pa: 2, pb: 4, pr: 9, pe: 4, pi: 3, rj: 7, rn: 4, rs: 0, ro: 2, rr: 2, sc: 9, sp: 8, se: 5, to: 1 }
@@ -0,0 +1,89 @@
1
+ require 'spec_helper'
2
+
3
+ shared_examples 'non empty string generator' do |str|
4
+ describe 'and' do
5
+ it 'return a string' do
6
+ expect(str).to be_a_kind_of(String)
7
+ end
8
+
9
+ it 'returns a non empty string' do
10
+ expect(str).not_to be_empty
11
+ end
12
+ end
13
+ end
14
+
15
+ describe Laranja::Address do
16
+ describe '#uf' do
17
+ it_behaves_like 'non empty string generator', Laranja::Address.uf
18
+ end
19
+
20
+ describe '#uf_abbr' do
21
+ it_behaves_like 'non empty string generator', Laranja::Address.uf_abbr
22
+ it 'returns a 2 characters string' do
23
+ expect(Laranja::Address.uf_abbr.size).to eq(2)
24
+ end
25
+ end
26
+
27
+ describe '#formatted_cep' do
28
+ it_behaves_like 'non empty string generator', Laranja::Address.formatted_cep
29
+
30
+ it 'returns an 8 characters string' do
31
+ expect(Laranja::Address.formatted_cep.size).to eq(9)
32
+ end
33
+
34
+ it 'returns a number only string' do
35
+ expect(Laranja::Address.formatted_cep).to match(/\d{5}-\d{3}/)
36
+ end
37
+
38
+ it 'has the UF digit if an UF is specified' do
39
+ expect(Laranja::Address.formatted_cep(:ce)[0].to_i).to eq(6)
40
+ expect(Laranja::Address.formatted_cep(:BA)[0].to_i).to eq(4)
41
+ expect(Laranja::Address.formatted_cep('rj')[0].to_i).to eq(2)
42
+ expect(Laranja::Address.formatted_cep('RS')[0].to_i).to eq(9)
43
+ expect(Laranja::Address.formatted_cep(:sp)[0].to_i).to eq(1)
44
+ end
45
+ end
46
+
47
+ describe '#cep' do
48
+ it_behaves_like 'non empty string generator', Laranja::Address.cep
49
+
50
+ it 'returns an 8 characters string' do
51
+ expect(Laranja::Address.cep.size).to eq(8)
52
+ end
53
+
54
+ it 'returns a number only string' do
55
+ expect(Laranja::Address.cep).to match(/\d{8}/)
56
+ end
57
+
58
+ it 'has the UF digit if an UF is specified' do
59
+ expect(Laranja::Address.cep(:ce)[0].to_i).to eq(6)
60
+ expect(Laranja::Address.cep(:BA)[0].to_i).to eq(4)
61
+ expect(Laranja::Address.cep('rj')[0].to_i).to eq(2)
62
+ expect(Laranja::Address.cep('RS')[0].to_i).to eq(9)
63
+ expect(Laranja::Address.cep(:sp)[0].to_i).to eq(1)
64
+ end
65
+ end
66
+
67
+ describe '#city' do
68
+ it_behaves_like 'non empty string generator', Laranja::Address.city
69
+ end
70
+
71
+ describe '#street' do
72
+ it_behaves_like 'non empty string generator', Laranja::Address.street
73
+ end
74
+
75
+ describe '#district' do
76
+ it_behaves_like 'non empty string generator', Laranja::Address.district
77
+ end
78
+
79
+ describe '#secondary' do
80
+ it_behaves_like 'non empty string generator', Laranja::Address.secondary
81
+ end
82
+
83
+ describe '#number' do
84
+ it_behaves_like 'non empty string generator', Laranja::Address.number
85
+ it 'returns a number only string' do
86
+ expect(Laranja::Address.number).to match(/\d+/)
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe Laranja::Gender do
4
+ describe '#gender' do
5
+ it 'returns a string' do
6
+ expect(Laranja::Gender.gender).to be_a_kind_of(String)
7
+ end
8
+
9
+ it 'returns a non empty string' do
10
+ expect(Laranja::Gender.gender).not_to be_empty
11
+ end
12
+ end
13
+
14
+ describe '#abbr' do
15
+ it 'returns a string' do
16
+ expect(Laranja::Gender.abbr).to be_a_kind_of(String)
17
+ end
18
+
19
+ it 'returns an 1 character string' do
20
+ expect(Laranja::Gender.abbr.size).to eq(1)
21
+ end
22
+ end
23
+ end
@@ -16,16 +16,16 @@ describe Laranja::Internet do
16
16
  let (:name) { 'John Doe' }
17
17
 
18
18
  it 'returns a string' do
19
- expect(Laranja::Internet.strfemail(name)).to be_a_kind_of(String)
19
+ expect(Laranja::Internet.email_for(name)).to be_a_kind_of(String)
20
20
  end
21
21
 
22
22
  it 'returns a valid email' do
23
- expect(Laranja::Internet.strfemail(name)).to match(/^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i)
23
+ expect(Laranja::Internet.email_for(name)).to match(/^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i)
24
24
  end
25
25
 
26
26
  it 'returns an email for the given name' do
27
- expect(Laranja::Internet.strfemail(name)).to include('john')
28
- expect(Laranja::Internet.strfemail(name)).to include('doe')
27
+ expect(Laranja::Internet.email_for(name)).to include('john')
28
+ expect(Laranja::Internet.email_for(name)).to include('doe')
29
29
  end
30
30
  end
31
31
 
@@ -44,16 +44,16 @@ describe Laranja::Internet do
44
44
  let (:name) { 'John Doe' }
45
45
 
46
46
  it 'returns a string' do
47
- expect(Laranja::Internet.strfusername(name)).to be_a_kind_of(String)
47
+ expect(Laranja::Internet.username_for(name)).to be_a_kind_of(String)
48
48
  end
49
49
 
50
50
  it 'returns an username for the given name' do
51
- expect(Laranja::Internet.strfusername(name)).to include('john')
52
- expect(Laranja::Internet.strfusername(name)).to include('doe')
51
+ expect(Laranja::Internet.username_for(name)).to include('john')
52
+ expect(Laranja::Internet.username_for(name)).to include('doe')
53
53
  end
54
54
 
55
55
  it 'returns an username for the given name and separator' do
56
- expect(Laranja::Internet.strfusername(name, ['-'])).to eq('john-doe')
56
+ expect(Laranja::Internet.username_for(name, ['-'])).to eq('john-doe')
57
57
  end
58
58
  end
59
59
 
@@ -39,20 +39,28 @@ describe Laranja::Name do
39
39
  it_behaves_like 'a name generator', Laranja::Name.last_name
40
40
  end
41
41
 
42
- describe '#strfname' do
42
+ describe '#strf' do
43
43
 
44
44
  let(:n) { 1 + rand(3) }
45
45
 
46
- it_behaves_like 'a name generator', Laranja::Name.strfname(0)
47
- it_behaves_like 'a name generator', Laranja::Name.strfname(1, false, false)
48
- it_behaves_like 'a name generator', Laranja::Name.strfname(0, true, false)
46
+ it_behaves_like 'a name generator', Laranja::Name.strf('%female_first_name')
47
+ it_behaves_like 'a name generator', Laranja::Name.strf('%male_first_name')
48
+ it_behaves_like 'a name generator', Laranja::Name.strf('%last_name')
49
+ it_behaves_like 'a name generator', Laranja::Name.strf('%male_suffix')
50
+ it_behaves_like 'a name generator', Laranja::Name.strf('%female_title')
51
+ it_behaves_like 'a name generator', Laranja::Name.strf('%male_title')
49
52
 
50
53
  it 'returns N last names when specified' do
51
- expect(Laranja::Name.strfname(n).split.size).to eq(n + 1)
54
+ expect(Laranja::Name.strf("%male_first_name#{ ' %last_name' * n }").split.size).to eq(n + 1)
55
+ expect(Laranja::Name.strf("%female_first_name#{ ' %last_name' * n }").split.size).to eq(n + 1)
52
56
  end
53
57
 
54
58
  it 'returns N last names plus suffix when specified' do
55
- expect(Laranja::Name.strfname(n, true).split.size).to eq(n + 2)
59
+ expect(Laranja::Name.strf("%male_first_name#{ ' %last_name' * n } %male_suffix").split.size).to eq(n + 2)
60
+ end
61
+
62
+ it 'returns a title when specified' do
63
+ expect(Laranja::Name.strf("%female_title %female_first_name#{ ' %last_name' * n }").split.size).to eq(n + 2)
56
64
  end
57
65
  end
58
66
  end
@@ -1,3 +1,5 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
1
3
  require 'laranja'
2
4
 
3
5
  RSpec.configure do |config|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: laranja
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-07 00:00:00.000000000 Z
12
+ date: 2014-02-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: safe_yaml
@@ -91,12 +91,16 @@ files:
91
91
  - Rakefile
92
92
  - laranja.gemspec
93
93
  - lib/laranja.rb
94
+ - lib/laranja/address.rb
94
95
  - lib/laranja/cpf.rb
96
+ - lib/laranja/gender.rb
95
97
  - lib/laranja/internet.rb
96
98
  - lib/laranja/name.rb
97
99
  - lib/laranja/version.rb
98
100
  - lib/static_data.yml
101
+ - spec/address_spec.rb
99
102
  - spec/cpf_spec.rb
103
+ - spec/gender_spec.rb
100
104
  - spec/internet_spec.rb
101
105
  - spec/name_spec.rb
102
106
  - spec/spec_helper.rb
@@ -115,7 +119,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
115
119
  version: '0'
116
120
  segments:
117
121
  - 0
118
- hash: -4502812516592306042
122
+ hash: 1413268876876247429
119
123
  required_rubygems_version: !ruby/object:Gem::Requirement
120
124
  none: false
121
125
  requirements:
@@ -124,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
128
  version: '0'
125
129
  segments:
126
130
  - 0
127
- hash: -4502812516592306042
131
+ hash: 1413268876876247429
128
132
  requirements: []
129
133
  rubyforge_project:
130
134
  rubygems_version: 1.8.25
@@ -133,7 +137,9 @@ specification_version: 3
133
137
  summary: Laranja will generate valid brazilian fake data, which can be used for automated
134
138
  testing or populating development databases.
135
139
  test_files:
140
+ - spec/address_spec.rb
136
141
  - spec/cpf_spec.rb
142
+ - spec/gender_spec.rb
137
143
  - spec/internet_spec.rb
138
144
  - spec/name_spec.rb
139
145
  - spec/spec_helper.rb