Class: BlaBla::Pessoa

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/pessoa.rb

Class Method Summary collapse

Class Method Details

.data_nascimento(params = {}) ⇒ Object



103
104
105
# File 'lib/generators/pessoa.rb', line 103

def self.data_nascimento params={}
  #ToDo
end

.filho(params = {}) ⇒ Object



119
120
121
# File 'lib/generators/pessoa.rb', line 119

def self.filho params={}
  #ToDo
end

.idade(params = {}) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/generators/pessoa.rb', line 76

def self.idade params={}
  unless params[:data_nascimento].nil?
    raise "Data de nascimento não é do tipo Date" if params[:data_nascimento].class != Date
    BlaBla::Util.diff_in_years_from(params[:data_nascimento]) 
  else
    unless params[:faixa].nil?
      faixa = params[:faixa]
      
      if faixa == :crianca
        rand(0..11)
      elsif faixa == :adolescente
        rand(12..18)
      elsif faixa == :adulto
        rand(19..60)
      elsif faixa == :idoso
        rand(60..90)
      elsif faixa.class == Range
        rand(faixa)
      else
        raise "Faixa de idade inválida"
      end
    else
      rand(18..70)
    end
  end
end

.mae(params = {}) ⇒ Object



115
116
117
# File 'lib/generators/pessoa.rb', line 115

def self.mae params={}
  #ToDo
end

.nome(params = {}) ⇒ String

Gera um nome completo de pessoa

Parameters:

  • params (Hash) (defaults to: {})

    Opções: ":sexo" > :masculino ou :feminino

Returns:

  • (String)

    um nome completo de pessoa



13
14
15
# File 'lib/generators/pessoa.rb', line 13

def self.nome params={}
  primeiro_nome(params) + " " + sobrenome(params)
end

.pai(params = {}) ⇒ Object



111
112
113
# File 'lib/generators/pessoa.rb', line 111

def self.pai params={}
  #ToDo
end

.perfil_completo(params = {}) ⇒ Object



6
7
8
# File 'lib/generators/pessoa.rb', line 6

def self.perfil_completo params={}
  #ToDo
end

.primeiro_nome(params = {}) ⇒ String

Gera um primeiro nome de pessoa

Parameters:

  • params (Hash) (defaults to: {})

    Opções: ":sexo" > :masculino ou :feminino

Returns:

  • (String)

    primeiro nome de pessoa



20
21
22
23
24
25
# File 'lib/generators/pessoa.rb', line 20

def self.primeiro_nome params={}
  sexo = params[:sexo]
  sexo = [:masculino, :feminino].sample if sexo.nil?

  BlaBla.strings("pessoa>#{sexo == :masculino ? "homens" : "mulheres" }>nomes").sample.capitalize
end

.sexo(params = {}) ⇒ Object



107
108
109
# File 'lib/generators/pessoa.rb', line 107

def self.sexo params={}
  #ToDo
end

.sobrenome(params = {}) ⇒ String

Gera um sobrenome de pessoa

Parameters:

  • params (Hash) (defaults to: {})

    Opções: ":sexo" > :masculino ou :feminino (caso seja masculino, o nome poderá possuir um agnome, como Neto, Filho, etc)

Returns:

  • (String)

    um sobrenome de pessoa



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
# File 'lib/generators/pessoa.rb', line 30

def self.sobrenome params={}
  sexo = params[:sexo]
  
  if sexo == :masculino
    agnome = BlaBla::Util.sortear_por_peso [
      {
        :valor => nil,
        :probabilidade => 95
      },
      {
        :valor => BlaBla.strings("pessoa>homens>agnomes").sample,
        :probabilidade => 5
      }
    ]
  end

  quantidade_sobrenomes = BlaBla::Util.sortear_por_peso [
    {
      :valor => 2,
      :probabilidade => 65
    },
    {
      :valor => 3,
      :probabilidade => 32
    },
    {
      :valor => 4,
      :probabilidade => 3
    }
  ]

  quantidade_sobrenomes -= 1 unless agnome.nil?

  sobrenomes = []
  disponiveis = BlaBla.strings("pessoa>sobrenomes")

  while sobrenomes.size < quantidade_sobrenomes
    sorteado = disponiveis.sample
    sobrenomes << sorteado unless sobrenomes.include? sorteado
  end  

  sobrenomes << agnome unless agnome.nil?

  capitalize_all sobrenomes.join(" ")
end