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...)

Parameters:

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

    Opções: ":comeco_padrao" > define se a frase deve iniciar com começo padrão do gerador

Returns:

  • (String)

    uma frase com palavras aleatórias



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

Parameters:

  • quantidade (Integer)

    a quantidade de frases desejada

Returns:

  • (Array)

    um vetor de frases



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)

Returns:

  • (String)

    uma palavra



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

Parameters:

  • quantidade (Integer)

    a quantidade de palavras desejada

Returns:

  • (Array)

    um vetor de palavras



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...)

Parameters:

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

    Opções: ":comeco_padrao" > define se o parágrafo deve iniciar com começo padrão do gerador

Returns:

  • (String)

    um parágrafo com palavras aleatórias



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

Parameters:

  • quantidade (Integer)

    a quantidade de parágrafos desejada

Returns:

  • (Array)

    um vetor de parágrafos



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