Class: Faussaire::Bizness
- Inherits:
-
Object
- Object
- Faussaire::Bizness
- Defined in:
- lib/faussaire/bizness.rb
Constant Summary collapse
- DATA_PATH =
File.('../../../locale/fr.yml', __FILE__)
Class Method Summary collapse
-
.brands ⇒ String
Produces a random brand name.
-
.fetch(key) ⇒ Object?
Fetches and optionally samples data based on the provided key.
- .format(arr) ⇒ Object
- .load_dico ⇒ Object
- .pipotronic ⇒ Object
Class Method Details
.brands ⇒ String
Produces a random brand name.
29 30 31 |
# File 'lib/faussaire/bizness.rb', line 29 def self.brands fetch('fr.faussaire.bizness.brands') end |
.fetch(key) ⇒ Object?
Fetches and optionally samples data based on the provided key. If the fetched data is an array, it samples a single item, otherwise returns the data directly.
15 16 17 18 19 |
# File 'lib/faussaire/bizness.rb', line 15 def self.fetch(key) data = YAML.load_file(DATA_PATH) result = data.dig(*key.split('.')) result.is_a?(Array) ? result.sample : result end |
.format(arr) ⇒ Object
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 |
# File 'lib/faussaire/bizness.rb', line 45 def self.format(arr) vowels = "aeiouyhéèà" arr.each_with_index do |phrase, i| # Identifier si le mot actuel se termine par '#' et le traiter. if phrase[-1] == '#' phrase.chop! # Supprimer le dernier caractère '#' next_phrase_starts_with_vowel = i < arr.size - 1 && vowels.include?(arr[i + 1][0].downcase) arr[i] += next_phrase_starts_with_vowel ? 'e ' : "'" end # Traiter les cas où le mot se termine par '\'' ou contient 'de ' nécessitant une décision sur l'ajout de 'e ' ou de ''. if phrase[-1] == '\'' || (phrase.include?('de') && phrase[-3..] == "de ") # Aucun besoin de couper le mot ici; ajustez simplement pour le suivant. next_phrase_starts_with_vowel = i < arr.size - 1 && vowels.include?(arr[i + 1][0].downcase) arr[i] += next_phrase_starts_with_vowel ? 'e ' : "" end # Ajouter un espace si nécessaire. arr[i] += ' ' unless arr[i].end_with?(' ', "'") || i == arr.size - 1 # Traitement spécial pour le sixième élément, si nécessaire. arr[i] = 'les ' + arr[i] if i == 5 end # Construire la phrase et ajouter un point à la fin. sentence = arr.join.squeeze(' ').strip + '.' sentence end |
.load_dico ⇒ Object
33 34 35 36 37 |
# File 'lib/faussaire/bizness.rb', line 33 def self.load_dico data = YAML.load_file(DATA_PATH) dico = data.dig('fr', 'faussaire', 'bizness', 'pipotronics') dico end |
.pipotronic ⇒ Object
39 40 41 42 43 |
# File 'lib/faussaire/bizness.rb', line 39 def self.pipotronic dico = load_dico selected_phrases = dico.map { |category| category.sample } format(selected_phrases) end |