Class: BlaBla::Texto::Base

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

Direct Known Subclasses

Bacon, Lorem

Class Method Summary collapse

Class Method Details

.comeco_padraoObject



98
99
100
# File 'lib/generators/texto/base.rb', line 98

def self.comeco_padrao
  BlaBla.strings "texto>#{generator_name}>comeco_padrao"
end

.frase(params = {}) ⇒ String

Retorna uma frase com palavras aleatórias, que podem ou não iniciar com o começo padrão do gerador (por ex: Lorem ipsum dolor sit amet...)



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
# File 'lib/generators/texto/base.rb', line 31

def self.frase params={}
  raise "Parâmetros inválidos" if params.class != Hash

  frase = ""
  tamanho = 7..16


  if params[:comeco_padrao]
    frase = comeco_padrao + " "
    tamanho = (comeco_padrao.split.size + 4)..16
  end

  tamanho = rand(tamanho)
  tem_virgula = true
  
  #frases com menos de dez palavras poderão não possuir vírgula
  tem_virgula = rand(1..3) != 3 if tamanho < 10

  if tem_virgula
    posicao_virgula = (tamanho / 2) + rand(0..(tamanho/2 - 3)) * (rand(1..2)==2 ? 1:-1) 
    
    if params[:comeco_padrao]
      tamanho_comeco_padrao = comeco_padrao.split.size
      posicao_virgula = tamanho - rand(3..(tamanho-tamanho_comeco_padrao)) if posicao_virgula < tamanho_comeco_padrao
    end
  end

  palavras_frase = frase.split + palavras(tamanho - frase.split.size)
  palavras_frase.insert posicao_virgula, "," if tem_virgula
  (palavras_frase.join(" ") + ".").gsub(" ,", ",").capitalize
end

.frases(quantidade) ⇒ Array

Retorna um vetor de frases com palavras aleatórias, com a quantidade especificada



66
67
68
69
70
# File 'lib/generators/texto/base.rb', line 66

def self.frases quantidade
  sorteadas = []
  1.upto(quantidade) { sorteadas << frase }
  sorteadas
end

.palavraString

Retorna uma palavra aleatória, oriunda do vocabulário do gerador (por exemplo, o gerador de Lorem Ipsum)



8
9
10
11
12
# File 'lib/generators/texto/base.rb', line 8

def self.palavra
  tamanho = BlaBla::Util.sortear_por_peso peso_por_tamanho_palavra

  palavras_gerador.reject{|p| p.size < tamanho.min || p.size > tamanho.max}.sample
end

.palavras(quantidade) ⇒ Array

Retorna um vetor de palavras aleatórias (geradas usando o método palavra), com a quantidade especificada



17
18
19
20
21
22
23
24
25
# File 'lib/generators/texto/base.rb', line 17

def self.palavras quantidade
  sorteadas = []

  while sorteadas.size < quantidade do 
    sorteada = palavra
    sorteadas << sorteada unless sorteadas.last == sorteada
  end
  sorteadas
end

.palavras_geradorObject



102
103
104
# File 'lib/generators/texto/base.rb', line 102

def self.palavras_gerador
  BlaBla.strings "texto>#{generator_name}>palavras"
end

.paragrafo(params = {}) ⇒ String

Retorna um parágrafo com palavras aleatórias, que podem ou não iniciar com o começo padrão do gerador (por ex: Lorem ipsum dolor sit amet...)



76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/generators/texto/base.rb', line 76

def self.paragrafo params={}
  raise "Parâmetros inválidos" if params.class != Hash
  tamanho = rand(4..10)
  frases_paragrafo = []
  if params[:comeco_padrao]
    frases_paragrafo << frase(:comeco_padrao => true)
    tamanho -= 1
  end

  1.upto(tamanho) { frases_paragrafo << frase }
  frases_paragrafo.join " "
end

.paragrafos(quantidade) ⇒ Array

Retorna um vetor de parágrafos com palavras aleatórias, com a quantidade especificada



92
93
94
95
96
# File 'lib/generators/texto/base.rb', line 92

def self.paragrafos quantidade
  sorteados = []
  1.upto(quantidade) { sorteados << paragrafo }
  sorteados
end