faussaire 0.1.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0213da4b19f2fbc6e263b0f2a29b5379f0091ac5cd02388015a5552fb9aa711d
4
- data.tar.gz: b661cdc72edf617ca8260699727efe298287c0d6b9e738415f60879bbc21a9f5
3
+ metadata.gz: 1eb436d18fc3136abaff8d38dae0c1053f1cb9752ca9c766e98070b5c8a6e34b
4
+ data.tar.gz: 6d2b5dda0f6a3982d53e7c4c422e62182f76ec17f9d4cccfb3d9ff2f67d8481e
5
5
  SHA512:
6
- metadata.gz: b6433e318c575d2c2bb46a32e15a2e13dd7421d9a4417e15138810ded78d7953f491b202782d2c810f145b1877ea7aad8016810c6698bb7dfb041c4e6c36f2c3
7
- data.tar.gz: 0615dd20a53a17bcff6720d4f7cec66724c432f3112c5c1310a89a771d9a1a4d71b2549f9ed0370739f75625796df76f3c45ec6071ac0a8877b1bee7132911bb
6
+ metadata.gz: c24c884ff5bd1dcfa97e4367a4c86efb6a6d6107b26618c22e17d977c90153a230db79d0214221f7b37637ed543648677581147930b8222cfec5b35b6b5fa21c
7
+ data.tar.gz: 40a83e42ed0c7871f1df5f0b0191ef98b9a0529746579e0f40ce769372dc3b1f53f20f0e781ebaa9d3f465605ce35e12de172084a51e8fb6dfeb83a754b56f5d
data/CHANGELOG.md CHANGED
@@ -1,11 +1,44 @@
1
1
  ## [Unreleased]
2
2
 
3
3
  ## [0.1.0] - 2023-12-25
4
-
5
4
  - Initial release
6
5
 
7
6
  ## [RELEASED]
8
7
 
9
8
  ## [0.1.1] - 2024-09-28
10
-
11
9
  - First live version
10
+
11
+ ## [0.1.6] - 2024-10-27
12
+ ### Added
13
+ - **New `Faussaire::Piraterie` Methods**:
14
+ - `role`: Generates a learner status inspired by The Hacking Project.
15
+ - `pnj`: Provides a pirate-themed character title.
16
+ - `nav`: Outputs a random pirate ship type.
17
+ - `rage`: Produces pirate-themed swearing expressions.
18
+ - `excuse`: Generates excuses for project delays or absences.
19
+ - `potin`: Creates gossipy anecdotes about bootcamp life.
20
+
21
+ ### Enhancements
22
+ - Improved spec coverage:
23
+ - Tests for duplicate values in YAML data.
24
+ - Format validation for data entries.
25
+ - Tests to confirm that each method returns a unique and expected value.
26
+
27
+ ## [1.0.0] - 2024-11-23
28
+ ### Added
29
+ - **New `Faussaire::Tv.netflix` Method**:
30
+ - Generates a random Netflix Original title from a cleaned dataset of 1033 TV shows, movies, stand-up comedy specials, and more.
31
+ - Example: `Faussaire::Tv.netflix` => `"Squid Game"`
32
+
33
+ ### Enhancements
34
+ - **Duplicate Check Refactoring**:
35
+ - Improved duplicate detection logic in YAML datasets for TV.
36
+ - Added `netflix` subset to duplicate-checking specs.
37
+
38
+ - **Readme Updates**:
39
+ - Added examples for the new `Faussaire::Tv.netflix` method.
40
+ - Updated documentation to reflect the expanded dataset.
41
+
42
+ - **Ruby Version Update**:
43
+ - Adjusted the required Ruby version to address a `rubocop` PR conflict issue.
44
+ - Standardized capitalization in the `license.txt` file.
data/LICENSE.txt CHANGED
@@ -20,16 +20,30 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
21
  THE SOFTWARE.
22
22
 
23
- ----
24
-
25
- Additional Terms on Data Ownership & Usage
26
-
27
- The dataset included in this software, including but not limited to the `fr.yml` file and other data files (the "Dataset"), is the property of the original creator and is protected under applicable intellectual property laws. The following additional terms apply specifically to the Dataset:
28
-
29
- 1. Educational Use Only: The Dataset may be used, modified, and distributed for educational purposes only as part of copies or substantial portions of the Software. Any other use of the Dataset is strictly prohibited without prior written authorization from the copyright holder.
30
-
31
- 2. Restricted Use for Other Projects: The Dataset, including the `fr.yml` file, may not be extracted, used, or incorporated into other projects or software without explicit prior authorization from the copyright holder. This restriction applies regardless of whether the other project is for commercial or non-commercial purposes.
32
-
33
- 3. Authorization Required: For any use of the Dataset outside the scope of these terms, including but not limited to commercial use or incorporation into other software, explicit authorization must be obtained from the copyright holder. Please contact [hello@ikramagix.com] for inquiries and permissions.
34
-
35
- These additional terms do not modify the MIT License as it applies to the Software itself. The Software remains available under the terms of the MIT License, while the Dataset is subject to the above restrictions.
23
+ ADDITIONAL TERMS ON DATA OWNERSHIP AND USAGE:
24
+
25
+ The dataset included in this software, including but not limited to the `fr.yml`
26
+ file and other data files (the "Dataset"), is the property of the original creator
27
+ and is protected under applicable intellectual property laws. The following
28
+ additional terms apply specifically to the Dataset:
29
+
30
+ 1. EDUCATIONAL USE ONLY:
31
+ The Dataset may be used, modified, and distributed for educational purposes only
32
+ as part of copies or substantial portions of the Software. Any other use of the
33
+ Dataset is strictly prohibited without prior written authorization from the
34
+ copyright holder.
35
+
36
+ 2. RESTRICTED USE FOR OTHER PROJECTS:
37
+ The Dataset, including the `fr.yml` file, may not be extracted, used, or
38
+ incorporated into other projects or software without explicit prior authorization
39
+ from the copyright holder. This restriction applies regardless of whether the other
40
+ project is for commercial or non-commercial purposes.
41
+
42
+ 3. AUTHORIZATION REQUIRED: For any use of the Dataset outside the scope of these terms,
43
+ including but not limited to commercial use or incorporation into other software, explicit
44
+ authorization must be obtained from the copyright holder.
45
+ Please contact [hello@ikramagix.com] for inquiries and permissions.
46
+
47
+ These additional terms do not modify the MIT License as it applies to the Software itself.
48
+ The Software remains available under the terms of the MIT License, while the Dataset is
49
+ subject to the above restrictions.
data/README.md CHANGED
@@ -1,30 +1,28 @@
1
1
  # FAUSSAIRE • Au revoir Lorem Ipsum
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/faussaire.svg)](https://badge.fury.io/rb/faussaire)
4
+ <p align="left">
5
+ <a href="#english">
6
+ <img src="hello.png" alt="English" width="50" height="50">
7
+ </a>
8
+ <br>
9
+ <a href="#english">
10
+ Hey! You can also README in English!
11
+ </a>
12
+ </p>
4
13
 
5
14
  ### Des données authentiques, des apps réalistes, des seeds ludiques
6
15
 
7
16
  **Faussaire** est une alternative made in France à la gem [Faker](https://github.com/faker-ruby/faker) en Ruby.
8
17
 
9
- Conçue pour fournir des données plus précises et moins génériques que [Faker](https://github.com/faker-ruby/faker), elle dispose actuellement d'un set français exhaustif, réaliste et culturellement pertinent pour vos projets Ruby francophones.
10
-
11
- > [!NOTE]
12
- > <p align="center">
13
- > <a href="#english">
14
- > <img src="hello.png" alt="English" width="50" height="50">
15
- > </a>
16
- > <br>
17
- > <a href="#english">
18
- > Hey! You can also README in English!
19
- > </a>
20
- > </p>
18
+ Conçue pour fournir des données plus précises et plus diverses, elle dispose actuellement d'un set français exhaustif, réaliste et culturellement pertinent pour vos projets Ruby francophones.
21
19
 
22
20
  ## Table des matières
23
21
 
24
22
  - [Pourquoi utiliser Faussaire ?](#pourquoi-utiliser-faussaire-)
23
+ - [Modules Disponibles](#modules-disponibles)
25
24
  - [Installation](#installation)
26
25
  - [Utilisation](#utilisation)
27
- - [Modules Disponibles](#modules-disponibles-dans-faussaire)
28
26
  - [Développement](#vous-voulez-participer-)
29
27
  - [Licence](#licence)
30
28
  - [Contribution](#il-manquerait-pas-un-petit-quelque-chose-)
@@ -35,15 +33,7 @@ Nous avons pour projet de proposer une version grecque dans les mois à venir, e
35
33
 
36
34
  Quand on aime ce qu’on fait, on aime rendre ça ludique.
37
35
 
38
- Comme moi, ça a dû vous arriver.
39
-
40
- Des phases de débogage interminables avec une base de données peuplée de Lorem Ipsum, ça devient vite lassant.
41
-
42
- Et puis, comment tester cette REGEX sur le format des adresses françaises si les données de test n’ont pas de numéro de département à 3 chiffres ?
43
-
44
- Mince, vous venez d’envoyer votre app en production, mais vous vous rendez compte qu’en excluant les caractères spéciaux, vous avez aussi empêché Stéphane de mettre un accent à son prénom.
45
-
46
- La liste est interminable.
36
+ Comme moi, ça a dû vous arriver. Des phases de débogage interminables avec une base de données peuplée de Lorem Ipsum, ça devient vite lassant. Et puis, comment tester cette REGEX sur le format des adresses françaises si les données de test n’ont pas de numéro de département à 3 chiffres ? Mince, vous venez d’envoyer votre app en production, mais vous vous rendez compte qu’en excluant les caractères spéciaux, vous avez aussi empêché Stéphane de mettre un accent à son prénom. La liste est interminable.
47
37
 
48
38
  Si comme moi, vous en avez marre de la standardisation à outrance et que vous voulez utiliser une librairie francophone, amusante et enrichissante, vous allez adorer Faussaire.
49
39
 
@@ -57,53 +47,7 @@ C'est quand même plus drôle d'avoir une liste d'AOC, un générateur de phrase
57
47
 
58
48
  - _Qualité des données:_ Proposer des options de génération de données soigneusement élaborés, précises et complètes, qu'il s'agisse de contextes professionnels ou de références culturelles.
59
49
 
60
- ## Installation
61
-
62
- Avant de commencer, vérifiez que Ruby et RubyGems sont bien installés sur votre machine. Vous pouvez utiliser les commandes suivantes :
63
-
64
- _Pour Ruby :_
65
-
66
- ```bash
67
- ruby -v
68
- ```
69
-
70
- Cela affichera la version de Ruby installée, si Ruby est bien installé.
71
-
72
- _Pour RubyGems :_
73
-
74
- ```bash
75
- gem -v
76
- ```
77
-
78
- Cela affichera la version de RubyGems installée, si RubyGems est bien installé.
79
-
80
- Ensuite, vous pouvez installer **Faussaire** directement via RubyGems :
81
-
82
- ```bash
83
- gem install faussaire
84
- ```
85
-
86
- Vous pouvez également l'ajouter à votre Gemfile :
87
-
88
- ```ruby
89
- gem 'faussaire'
90
- ```
91
-
92
- et lancez la commande suivante pour l'installer :
93
-
94
- ```bash
95
- bundle install
96
- ```
97
-
98
- ## Utilisation
99
-
100
- Pour utiliser **Faussaire** dans vos applications Ruby, il suffit de charger la gem :
101
-
102
- ```ruby
103
- require 'faussaire'
104
- ```
105
-
106
- ## Modules Disponibles dans Faussaire
50
+ ## Modules Disponibles
107
51
 
108
52
  <details>
109
53
  <summary><strong>Faussaire::Ancien</strong></summary>
@@ -182,7 +126,7 @@ Faussaire::Address.full_address
182
126
  </details>
183
127
 
184
128
  <details>
185
- <summary><strong>Faussaire::Bizness</strong> — <i>Brasseur de vent (phrases "corporate" dénuées de sens) et noms de marques françaises</i></summary>
129
+ <summary><strong>Faussaire::Bizness</strong></summary>
186
130
 
187
131
  Le module `Faussaire::Bizness` génère des noms de marques françaises et des phrases clichés du monde de l'entreprise.
188
132
 
@@ -243,9 +187,7 @@ Faussaire::Cosmos.exploration
243
187
  Le module `Faussaire::Creamerie` génère des données liées aux produits laitiers français, parfait pour des applications ou des démonstrations liées à l'alimentation.
244
188
 
245
189
  ```ruby
246
- # Génère un type de lait al
247
-
248
- éatoire.
190
+ # Génère un type de lait aléatoire.
249
191
  Faussaire::Creamerie.milk_type
250
192
  # => "Lait de bufflonne"
251
193
 
@@ -335,12 +277,51 @@ Faussaire::Name.name
335
277
  ```
336
278
  </details>
337
279
 
280
+ <details>
281
+ <summary><strong>Faussaire::Piraterie</strong></summary>
282
+
283
+ Le module `Faussaire::Piraterie` est un hommage à The Hacking Project (THP), le bootcamp français qui réinvente l'apprentissage du code grâce à l'entraide et à l'esprit d'équipe. Ce module permet de générer des données inspirés de l'univers de la formation et a été réalisé pour être utilisé dans le cadre de la formation.
284
+
285
+ ```ruby
286
+ # Génère un rôle qu'un apprenant peut avoir chez THP.
287
+ Faussaire::Piraterie.role
288
+ # => "Moussaillon"
289
+
290
+ # Génère un statut thématique autour de la piraterie mais qui n'est pas (encore) utilisé chez THP.
291
+ Faussaire::Piraterie.pnj
292
+ # => "Siresse"
293
+
294
+ # Génère un type de navire pirate.
295
+ Faussaire::Piraterie.nav
296
+ # => "Frégate"
297
+
298
+ # Génère un juron de pirate.
299
+ Faussaire::Piraterie.rage
300
+ # => "Mille millions de mille sabords !"
301
+
302
+ # Génère une excuse aléatoire pour justifier une absence, un retard ou un projet non rendu.
303
+ Faussaire::Piraterie.excuse
304
+ # => "Les embruns de la mer de Frêche m'ont rendu un peu fébrile… ai-je droit à un peu de repos Capitaine ?"
305
+
306
+ # Génère un potin amusant sur l'expérience d'apprentissage à THP, idéal pour le fameux Gossip Project.
307
+ Faussaire::Piraterie.potin
308
+ # => "“Une bête de prime en crypto” : un corsaire influent promet une récompense au premier moussaillon qui contribue à la gem Faussaire. Des bruits de ponton racontent qu'un corsaire influent de la promo aurait mis en jeu une prime en crypto pour inciter les moussaillons à contribuer à la célèbre gem Faussaire. Vrai bonne affaire ou simple manigance ?"
309
+ ```
310
+ </details>
311
+
312
+
338
313
  <details>
339
314
  <summary><strong>Faussaire::Tv</strong></summary>
340
315
 
341
316
  Le module `Faussaire::Tv` génère des données factices liées à la télévision, y compris des titres d'émissions, des influenceurs, des couples célèbres, des chaînes TV, ainsi que des détails spécifiques liés au Festival de Cannes.
342
317
 
343
318
  ```ruby
319
+
320
+ # Génère un titre de contenu Netflix Originals (séries, films, one-man show, etc...).
321
+ # Plus de 1033 propositions !
322
+ Faussaire::Tv.netflix
323
+ # => "Squid Game"
324
+
344
325
  # Génère un titre d'émission de télévision aléatoire.
345
326
  Faussaire::Tv.show
346
327
  # => "Marjolaine et les Millionnaires"
@@ -351,7 +332,7 @@ Faussaire::Tv.influencer
351
332
 
352
333
  # Génère un couple célèbre de la télévision aléatoire.
353
334
  Faussaire::Tv.famous_couples
354
- # => "J.Lo et Diddy (2000)"
335
+ # => "Marilyn Monroe et Joe DiMaggio (1953)"
355
336
 
356
337
  # Génère un nom de chaîne TV aléatoire.
357
338
  Faussaire::Tv.channel
@@ -419,6 +400,52 @@ Faussaire::Wine.licocorico
419
400
  ```
420
401
  </details>
421
402
 
403
+ ## Installation
404
+
405
+ Avant de commencer, vérifiez que Ruby et RubyGems sont bien installés sur votre machine. Vous pouvez utiliser les commandes suivantes :
406
+
407
+ _Pour Ruby :_
408
+
409
+ ```bash
410
+ ruby -v
411
+ ```
412
+
413
+ Cela affichera la version de Ruby installée, si Ruby est bien installé.
414
+
415
+ _Pour RubyGems :_
416
+
417
+ ```bash
418
+ gem -v
419
+ ```
420
+
421
+ Cela affichera la version de RubyGems installée, si RubyGems est bien installé.
422
+
423
+ Ensuite, vous pouvez installer **Faussaire** directement via RubyGems :
424
+
425
+ ```bash
426
+ gem install faussaire
427
+ ```
428
+
429
+ Vous pouvez également l'ajouter à votre Gemfile :
430
+
431
+ ```ruby
432
+ gem 'faussaire'
433
+ ```
434
+
435
+ et lancez la commande suivante pour l'installer :
436
+
437
+ ```bash
438
+ bundle install
439
+ ```
440
+
441
+ ## Utilisation
442
+
443
+ Pour utiliser **Faussaire** dans vos applications Ruby, il suffit de charger la gem :
444
+
445
+ ```ruby
446
+ require 'faussaire'
447
+ ```
448
+
422
449
  ## Vous voulez participer ?
423
450
 
424
451
  Pour configurer l'environnement de développement pour **Faussaire** :
@@ -790,7 +817,13 @@ Faussaire::Name.name
790
817
  The `Faussaire::Tv` module generates fake data related to television, including show titles, influencers, famous couples, TV channels, and specific details related to the Cannes Film Festival.
791
818
 
792
819
  ```ruby
793
- # Generates a random television show title.
820
+
821
+ # Generates a Netflix Originals title (TV shows, movies, stand-up comedies, etc.).
822
+ # Over 1,033 real possibilities
823
+ Faussaire::Tv.netflix
824
+ # => "Squid Game"
825
+
826
+ # Generates a random French reality TV show title.
794
827
  Faussaire::Tv.show
795
828
  # => "Marjolaine et les Millionnaires"
796
829
 
@@ -800,7 +833,7 @@ Faussaire::Tv.influencer
800
833
 
801
834
  # Generates a random famous television couple.
802
835
  Faussaire::Tv.famous_couples
803
- # => "J.Lo et Diddy (2000)"
836
+ # => "Marilyn Monroe et Joe DiMaggio (1953)"
804
837
 
805
838
  # Generates a random TV channel name.
806
839
  Faussaire::Tv.channel
data/faussaire.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = "Faussaire is a Ruby gem that allows you to effortlessly generate a diverse set of fake data in multiple languages, including French and Greek. Whether you're developing and testing applications or need placeholder content for design mockups, Faussaire provides a simple and flexible way to create realistic-looking data on demand."
13
13
  spec.homepage = "https://github.com/ikramagix/faussaire"
14
14
  spec.license = "MIT"
15
- spec.required_ruby_version = ">= 2.6.0"
15
+ spec.required_ruby_version = ">= 2.7.0"
16
16
 
17
17
  spec.metadata["homepage_uri"] = spec.homepage
18
18
  spec.metadata["source_code_uri"] = "https://github.com/ikramagix/faussaire"
@@ -0,0 +1,92 @@
1
+ require 'yaml'
2
+
3
+ module Faussaire
4
+ class Piraterie
5
+ DATA_PATH = File.expand_path('../../../locale/fr.yml', __FILE__)
6
+
7
+ ##
8
+ # Fetches and samples data based on the provided key. If the fetched data is an array,
9
+ # it samples a single item, otherwise returns the data directly.
10
+ #
11
+ # @param key [String] The dot-separated key used to access the data.
12
+ # @return [Object, nil] The data fetched and optionally sampled.
13
+ #
14
+ def self.fetch(key)
15
+ data = YAML.load_file(DATA_PATH)
16
+ result = data.dig(*key.split('.'))
17
+ result.is_a?(Array) ? result.sample : result
18
+ end
19
+
20
+ ##
21
+ # Produces a random The Hacking Project learner status.
22
+ #
23
+ # @return [String]
24
+ #
25
+ # @example
26
+ # Faussaire::Piraterie.role #=> "Moussaillon"
27
+ #
28
+ def self.role
29
+ fetch('fr.faussaire.piraterie.role')
30
+ end
31
+
32
+ ##
33
+ # Produces a random pirate-themed status not used in the Hacking Project.
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faussaire::Piraterie.pnj #=> "Siresse"
39
+ #
40
+ def self.pnj
41
+ fetch('fr.faussaire.piraterie.pnj')
42
+ end
43
+
44
+ ##
45
+ # Produces a random pirate boat type.
46
+ #
47
+ # @return [String]
48
+ #
49
+ # @example
50
+ # Faussaire::Piraterie.nav #=> "Frégate"
51
+ #
52
+ def self.nav
53
+ fetch('fr.faussaire.piraterie.nav')
54
+ end
55
+
56
+ ##
57
+ # Produces a random pirate swearing.
58
+ #
59
+ # @return [String]
60
+ #
61
+ # @example
62
+ # Faussaire::Piraterie.rage #=> "Mille millions de mille sabords !"
63
+ #
64
+ def self.rage
65
+ fetch('fr.faussaire.piraterie.rage')
66
+ end
67
+
68
+ ##
69
+ # Produces a random excuse for not delivering a project or being absent.
70
+ #
71
+ # @return [String]
72
+ #
73
+ # @example
74
+ # Faussaire::Piraterie.excuse #=> "Les embruns de la mer de Frêche m'ont rendu un peu fébrile… ai-je droit à un peu de repos Capitaine ?"
75
+ #
76
+ def self.excuse
77
+ fetch('fr.faussaire.piraterie.excuse')
78
+ end
79
+
80
+ ##
81
+ # Produces a random made-up gossip about The Hacking Project experience.
82
+ #
83
+ # @return [String]
84
+ #
85
+ # @example
86
+ # Faussaire::Piraterie.potin #=> "Il paraît qu’un moussaillon préfère naviguer en eaux troubles avec des commits non testés !"
87
+ #
88
+ def self.potin
89
+ fetch('fr.faussaire.piraterie.potin')
90
+ end
91
+ end
92
+ end
data/lib/faussaire/tv.rb CHANGED
@@ -169,5 +169,17 @@ module Faussaire
169
169
  def self.channel
170
170
  fetch('fr.faussaire.tv.channel')
171
171
  end
172
+
173
+ ##
174
+ # Produces a random Netflix program.
175
+ #
176
+ # @return [String]
177
+ #
178
+ # @example
179
+ # Faussaire::Tv.netflix #=> "Stranger Things"
180
+ #
181
+ def self.netflix
182
+ fetch('fr.faussaire.tv.netflix')
183
+ end
172
184
  end
173
185
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Faussaire
4
- VERSION = "0.1.3"
4
+ VERSION = "1.0.0"
5
5
  end
data/lib/faussaire.rb CHANGED
@@ -13,6 +13,7 @@ require_relative 'faussaire/gardinerie'
13
13
  require_relative 'faussaire/citation'
14
14
  require_relative 'faussaire/cosmos'
15
15
  require_relative 'faussaire/music'
16
+ require_relative 'faussaire/piraterie'
16
17
 
17
18
 
18
19
  module Faussaire