faker 2.19.0 → 3.2.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.
Files changed (185) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +346 -7
  3. data/History.md +1 -1
  4. data/README.md +198 -104
  5. data/lib/faker/blockchain/aeternity.rb +1 -1
  6. data/lib/faker/blockchain/ethereum.rb +1 -1
  7. data/lib/faker/blockchain/tezos.rb +1 -1
  8. data/lib/faker/books/dune.rb +2 -10
  9. data/lib/faker/books/lovecraft.rb +7 -38
  10. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
  11. data/lib/faker/default/address.rb +5 -25
  12. data/lib/faker/default/alphanumeric.rb +2 -8
  13. data/lib/faker/default/app.rb +1 -10
  14. data/lib/faker/default/avatar.rb +1 -12
  15. data/lib/faker/default/bank.rb +9 -17
  16. data/lib/faker/default/boolean.rb +1 -4
  17. data/lib/faker/default/chile_rut.rb +8 -14
  18. data/lib/faker/default/code.rb +11 -24
  19. data/lib/faker/default/color.rb +77 -6
  20. data/lib/faker/default/commerce.rb +3 -17
  21. data/lib/faker/default/company.rb +23 -20
  22. data/lib/faker/default/crypto_coin.rb +3 -15
  23. data/lib/faker/default/date.rb +5 -38
  24. data/lib/faker/default/demographic.rb +1 -5
  25. data/lib/faker/default/driving_licence.rb +1 -11
  26. data/lib/faker/default/drone.rb +1 -1
  27. data/lib/faker/default/file.rb +5 -24
  28. data/lib/faker/default/finance.rb +17 -7
  29. data/lib/faker/default/food.rb +14 -1
  30. data/lib/faker/default/hipster.rb +6 -45
  31. data/lib/faker/default/id_number.rb +108 -11
  32. data/lib/faker/default/internet.rb +168 -129
  33. data/lib/faker/default/invoice.rb +4 -17
  34. data/lib/faker/default/json.rb +2 -20
  35. data/lib/faker/default/lorem.rb +20 -76
  36. data/lib/faker/default/lorem_flickr.rb +4 -32
  37. data/lib/faker/default/markdown.rb +6 -11
  38. data/lib/faker/default/marketing.rb +1 -1
  39. data/lib/faker/default/measurement.rb +16 -48
  40. data/lib/faker/default/name.rb +1 -5
  41. data/lib/faker/default/nation.rb +0 -3
  42. data/lib/faker/default/nhs.rb +2 -6
  43. data/lib/faker/default/number.rb +10 -55
  44. data/lib/faker/default/omniauth.rb +51 -41
  45. data/lib/faker/default/phone_number.rb +2 -6
  46. data/lib/faker/default/placeholdit.rb +1 -12
  47. data/lib/faker/default/relationship.rb +1 -5
  48. data/lib/faker/default/religion.rb +6 -0
  49. data/lib/faker/default/source.rb +3 -16
  50. data/lib/faker/default/string.rb +1 -8
  51. data/lib/faker/default/stripe.rb +4 -20
  52. data/lib/faker/default/time.rb +4 -34
  53. data/lib/faker/default/twitter.rb +7 -23
  54. data/lib/faker/default/types.rb +5 -27
  55. data/lib/faker/default/vehicle.rb +29 -51
  56. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  57. data/lib/faker/default/world_cup.rb +2 -11
  58. data/lib/faker/games/clash_of_clans.rb +1 -1
  59. data/lib/faker/games/dnd.rb +49 -7
  60. data/lib/faker/games/dota.rb +1 -5
  61. data/lib/faker/games/minecraft.rb +1 -1
  62. data/lib/faker/games/myst.rb +1 -1
  63. data/lib/faker/games/tarkov.rb +205 -0
  64. data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
  65. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +48 -0
  66. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  67. data/lib/faker/japanese_media/one_piece.rb +1 -1
  68. data/lib/faker/movies/avatar.rb +49 -0
  69. data/lib/faker/movies/hackers.rb +48 -0
  70. data/lib/faker/movies/star_wars.rb +1 -5
  71. data/lib/faker/movies/tron.rb +161 -0
  72. data/lib/faker/quotes/quote.rb +13 -0
  73. data/lib/faker/religion/bible.rb +50 -0
  74. data/lib/faker/sports/chess.rb +90 -0
  75. data/lib/faker/sports/mountaineering.rb +22 -0
  76. data/lib/faker/sports/sport.rb +116 -0
  77. data/lib/faker/travel/airport.rb +43 -0
  78. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  79. data/lib/faker/tv_shows/michael_scott.rb +0 -3
  80. data/lib/faker/tv_shows/spongebob.rb +50 -0
  81. data/lib/faker/version.rb +1 -1
  82. data/lib/faker.rb +15 -64
  83. data/lib/helpers/base58.rb +1 -1
  84. data/lib/helpers/unique_generator.rb +13 -11
  85. data/lib/locales/ar.yml +6 -1
  86. data/lib/locales/bg.yml +1 -1
  87. data/lib/locales/da-DK.yml +1 -1
  88. data/lib/locales/de-AT.yml +3 -4
  89. data/lib/locales/de-CH.yml +1 -1
  90. data/lib/locales/de.yml +1 -1
  91. data/lib/locales/en/address.yml +2 -3
  92. data/lib/locales/en/airport.yml +381 -0
  93. data/lib/locales/en/australia.yml +3 -4
  94. data/lib/locales/en/avatar.yml +31 -0
  95. data/lib/locales/en/bible.yml +90 -0
  96. data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
  97. data/lib/locales/en/cat.yml +1 -1
  98. data/lib/locales/en/chess.yml +103 -0
  99. data/lib/locales/en/coffee.yml +1 -1
  100. data/lib/locales/en/company.yml +1 -0
  101. data/lib/locales/en/computer.yml +23 -4
  102. data/lib/locales/en/cowboy_bebop.yml +163 -0
  103. data/lib/locales/en/dnd.yml +186 -1
  104. data/lib/locales/en/dota.yml +113 -0
  105. data/lib/locales/en/file.yml +9 -1
  106. data/lib/locales/en/finance.yml +3 -1
  107. data/lib/locales/en/fma_brotherhood.yml +78 -0
  108. data/lib/locales/en/food.yml +12 -0
  109. data/lib/locales/en/game.yml +11 -0
  110. data/lib/locales/en/hackers.yml +53 -0
  111. data/lib/locales/en/heroes.yml +2 -2
  112. data/lib/locales/en/internet.yml +140 -3
  113. data/lib/locales/en/kamen_rider.yml +452 -0
  114. data/lib/locales/en/mitch_hedberg.yml +46 -0
  115. data/lib/locales/en/mountain.yml +14 -1
  116. data/lib/locales/en/mountaineering.yml +14 -0
  117. data/lib/locales/en/movie.yml +2 -1
  118. data/lib/locales/en/naruto.yml +2 -3
  119. data/lib/locales/en/one_piece.yml +1 -1
  120. data/lib/locales/en/opera.yml +1 -1
  121. data/lib/locales/en/overwatch.yml +5 -7
  122. data/lib/locales/en/source.yml +5 -0
  123. data/lib/locales/en/spongebob.yml +489 -0
  124. data/lib/locales/en/sport.yml +130 -0
  125. data/lib/locales/en/star_wars.yml +1 -1
  126. data/lib/locales/en/stranger_thing.yml +1 -1
  127. data/lib/locales/en/super_smash_bros.yml +2 -0
  128. data/lib/locales/en/tarkov.yml +593 -0
  129. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  130. data/lib/locales/en/tron.yml +227 -0
  131. data/lib/locales/en/vehicle.yml +2809 -75
  132. data/lib/locales/en-AU.yml +2 -2
  133. data/lib/locales/en-CA.yml +2 -1
  134. data/lib/locales/en-GB.yml +2 -1
  135. data/lib/locales/en-MS.yml +1 -0
  136. data/lib/locales/en-NG.yml +1 -0
  137. data/lib/locales/en-NZ.yml +1 -0
  138. data/lib/locales/en-PAK.yml +1 -0
  139. data/lib/locales/en-SG.yml +1 -0
  140. data/lib/locales/en-UG.yml +1 -0
  141. data/lib/locales/en-US.yml +2 -2
  142. data/lib/locales/en-ZA.yml +1 -1
  143. data/lib/locales/en-au-ocker.yml +2 -0
  144. data/lib/locales/es-AR.yml +3 -2
  145. data/lib/locales/es-MX.yml +1 -1
  146. data/lib/locales/es.yml +2 -2
  147. data/lib/locales/fi-FI.yml +3 -1
  148. data/lib/locales/fr/address.yml +0 -1
  149. data/lib/locales/fr/adjective.yml +266 -0
  150. data/lib/locales/fr/ancient.yml +141 -0
  151. data/lib/locales/fr-CA.yml +1 -1
  152. data/lib/locales/fr-CH.yml +1 -1
  153. data/lib/locales/hy.yml +2 -1
  154. data/lib/locales/it.yml +1 -0
  155. data/lib/locales/ja/address.yml +258 -4169
  156. data/lib/locales/ja/adjective.yml +148 -0
  157. data/lib/locales/ja/dog.yml +1 -0
  158. data/lib/locales/ja/emotion.yml +51 -0
  159. data/lib/locales/ja/lorem.yml +2 -2
  160. data/lib/locales/ja/naruto.yml +230 -0
  161. data/lib/locales/ja/relationship.yml +10 -0
  162. data/lib/locales/ja/super_mario.yml +1 -1
  163. data/lib/locales/ja/super_smash_bros.yml +8 -0
  164. data/lib/locales/ko.yml +1 -0
  165. data/lib/locales/lt.yml +34 -0
  166. data/lib/locales/lv.yml +1 -1
  167. data/lib/locales/mi-NZ.yml +283 -0
  168. data/lib/locales/nb-NO.yml +1 -0
  169. data/lib/locales/nl.yml +1 -0
  170. data/lib/locales/pl.yml +2 -2
  171. data/lib/locales/pt-BR.yml +5 -0
  172. data/lib/locales/pt.yml +1 -1
  173. data/lib/locales/ru.yml +1 -0
  174. data/lib/locales/sk.yml +1 -0
  175. data/lib/locales/sv.yml +1 -0
  176. data/lib/locales/th.yml +76 -76
  177. data/lib/locales/tr.yml +1 -0
  178. data/lib/locales/uk.yml +1 -0
  179. data/lib/locales/vi.yml +1 -0
  180. data/lib/locales/zh-CN.yml +1 -0
  181. data/lib/locales/zh-TW.yml +1 -0
  182. metadata +96 -33
  183. data/lib/faker/default/fillmurray.rb +0 -45
  184. data/lib/faker/default/lorem_pixel.rb +0 -70
  185. /data/lib/faker/default/{faker_adjective.rb → adjective.rb} +0 -0
data/README.md CHANGED
@@ -3,76 +3,114 @@
3
3
  # Faker
4
4
  [![Tests](https://github.com/faker-ruby/faker/workflows/Tests/badge.svg)](https://github.com/faker-ruby/faker/actions?query=workflow%3ATests)
5
5
  [![Gem Version](https://badge.fury.io/rb/faker.svg)](https://badge.fury.io/rb/faker)
6
- [![Inline docs](https://inch-ci.org/github/faker-ruby/faker.svg?branch=master)](https://inch-ci.org/github/faker-ruby/faker)
6
+ [![Inline docs](https://inch-ci.org/github/faker-ruby/faker.svg?branch=main)](https://inch-ci.org/github/faker-ruby/faker)
7
7
  [![Test Coverage](https://api.codeclimate.com/v1/badges/ef54c7f9df86e965d64b/test_coverage)](https://codeclimate.com/github/stympy/faker/test_coverage)
8
8
  [![Maintainability](https://api.codeclimate.com/v1/badges/ef54c7f9df86e965d64b/maintainability)](https://codeclimate.com/github/stympy/faker/maintainability)
9
- [![SemVer compatibility](https://api.dependabot.com/badges/compatibility_score?dependency-name=faker&package-manager=bundler&version-scheme=semver)](https://dependabot.com/compatibility-score.html?dependency-name=faker&package-manager=bundler&version-scheme=semver)
10
9
 
11
- This gem is a port of [Perl's Data::Faker library](https://metacpan.org/pod/Data::Faker) that generates fake data.
10
+ Faker is a port of [Perl's Data::Faker library](https://metacpan.org/pod/Data::Faker).
11
+ It's a library for generating fake data such as names, addresses, and phone numbers.
12
12
 
13
- It comes in very handy for taking screenshots (taking screenshots for my
14
- project, [Catch the Best](http://catchthebest.com/) was the original impetus
15
- for the creation of this gem), having real-looking test data, and having your
16
- database populated with more than one or two records while you're doing
17
- development.
13
+ Faker helps you generate realistic test data, and populate your
14
+ database with more than a couple of records while you're doing development.
15
+
16
+ It comes in very handy for taking screenshots (taking screenshots for a personal project)
17
+ and it was the original impetus for the creation of this gem).
18
+
19
+ ## Quick links
20
+
21
+ - 📖 **[Read the documentation for the latest version][rubydocs].**
22
+ - 📢 **[See what's changed in recent versions][changelog].**
23
+
24
+ [rubydocs]: https://www.rubydoc.info/gems/faker/
25
+ [changelog]: CHANGELOG.md
26
+
27
+ ## Table of Contents
18
28
 
19
29
  - [Faker](#faker)
20
- - [NOTE](#note)
21
- - [Installing](#installing)
30
+ - [Quick links](#quick-links)
31
+ - [Table of Contents](#table-of-contents)
32
+ - [Notes](#notes)
33
+ - [Getting Started](#getting-started)
22
34
  - [Usage](#usage)
23
- - [CLI](#cli)
35
+ - [A note about the Generators versions](#a-note-about-the-generators-versions)
24
36
  - [Ensuring unique values](#ensuring-unique-values)
25
37
  - [Deterministic Random](#deterministic-random)
38
+ - [Customization](#customization)
39
+ - [Minitest and Faker \>= 2.22](#minitest-and-faker--222)
26
40
  - [Generators](#generators)
27
- - [Default](#default)
28
- - [Blockchain](#blockchain)
29
- - [Books](#books)
30
- - [Fantasy](#fantasy)
31
- - [Creature](#creature)
32
- - [Games](#games)
33
- - [Japanese Media](#japanese-media)
34
- - [Movies](#movies)
35
- - [Music](#music)
36
- - [Quotes](#quotes)
37
- - [Sports](#sports)
38
- - [Tv Shows](#tv-shows)
39
- - [Customization](#customization)
40
41
  - [Contributing](#contributing)
41
- - [Contact](#contact)
42
+ - [Versioning](#versioning)
42
43
  - [License](#license)
43
44
 
44
- ### NOTE
45
+ ### Notes
46
+
45
47
  * While Faker generates data at random, returned values are not guaranteed to be unique by default.
46
- You must explicitly specify when you require unique values, see [details](#ensuring-unique-values).
47
- Values also can be deterministic if you use the deterministic feature, see [details](#deterministic-random)
48
- * This is the `master` branch of Faker and may contain changes that are not yet released.
49
- Please refer the README of your version for the available methods.
50
- List of all versions is [available here](https://github.com/stympy/faker/releases).
51
-
52
- ## Installing
53
- ```bash
54
- gem install faker
55
- ```
56
- Note: if you are getting a `uninitialized constant Faker::[some_class]` error, your version of the gem is behind the one documented here. To make sure that your gem is the one documented here, change the line in your Gemfile to:
48
+ To explicitly specify when you require unique values, see [Ensuring Unique Values](#ensuring-unique-values).
49
+ Values also can be deterministic if you use the deterministic feature, see [Deterministic Random](#deterministic-random)
50
+ * This is the `main` branch of Faker and may contain changes that are not yet released.
51
+ Please refer to the README of your version for the available methods.
52
+ The list of all versions is [available here](https://github.com/stympy/faker/releases).
53
+
54
+ ## Getting Started
55
+
56
+ Start by including `faker` in your Gemfile:
57
57
 
58
58
  ```ruby
59
- gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'master'
59
+ gem 'faker'
60
60
  ```
61
61
 
62
+ Then run `bundle install`.
63
+
62
64
  ## Usage
65
+
66
+ Here are some examples of how to use Faker:
67
+
63
68
  ```ruby
64
69
  require 'faker'
65
70
 
66
71
  Faker::Name.name #=> "Christophe Bartell"
67
72
 
68
- Faker::Internet.email #=> "kirsten.greenholt@corkeryfisher.info"
73
+ Faker::Address.full_address #=> "5479 William Way, East Sonnyhaven, LA 63637"
74
+
75
+ Faker::Markdown.emphasis #=> "Quo qui aperiam. Amet corrupti distinctio. Sit quia *dolor.*"
76
+
77
+ Faker::TvShows::RuPaul.queen #=> "Violet Chachki"
78
+
79
+ Faker::Alphanumeric.alpha(number: 10) #=> "zlvubkrwga"
80
+
81
+ Faker::ProgrammingLanguage.name #=> "Ruby"
82
+ ```
83
+
84
+ For a complete list of the generators, see [Generators](#generators).
85
+
86
+ #### A note about the Generators versions
87
+
88
+ If you get a `uninitialized constant Faker::[some_class]` error, your version of
89
+ the gem is behind main.
90
+
91
+ To make sure that your gem is the one
92
+ documented here, change the line in your Gemfile to:
93
+
94
+ ```ruby
95
+ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'main'
69
96
  ```
70
97
 
71
- ### CLI
72
- Instructions are available in the [faker-bot README](https://github.com/faker-ruby/faker-bot).
98
+ The generators have the `@faker.version` tag on top of their implementation.
99
+ From the tags, you can identify the version the generator was added:
100
+
101
+ ```ruby
102
+ # Faker::TvShows::ParksAndRec.character
103
+
104
+ # @faker.version 1.9.0
105
+ def character
106
+ fetch('parks_and_rec.characters')
107
+ end
108
+ ```
73
109
 
74
110
  ### Ensuring unique values
75
- Prefix your method call with `unique`. For example:
111
+
112
+ To ensure Faker generates unique values, prefix your method call with `unique`:
113
+
76
114
  ```ruby
77
115
  Faker::Name.unique.name # This will return a unique name every time it is called
78
116
  ```
@@ -81,6 +119,7 @@ If too many unique values are requested from a generator that has a limited
81
119
  number of potential values, a `Faker::UniqueGenerator::RetryLimitExceeded`
82
120
  exception may be raised. It is possible to clear the record of unique values
83
121
  that have been returned, for example between tests.
122
+
84
123
  ```ruby
85
124
  Faker::Name.unique.clear # Clears used values for Faker::Name
86
125
  Faker::UniqueGenerator.clear # Clears used values for all generators
@@ -99,7 +138,9 @@ Faker::Lorem.unique.exclude :string, [number: 6], %w[azerty wxcvbn]
99
138
  ```
100
139
 
101
140
  ### Deterministic Random
102
- Faker supports seeding of its pseudo-random number generator (PRNG) to provide deterministic output of repeated method calls.
141
+
142
+ Faker supports seeding of its pseudo-random number generator (PRNG)
143
+ to provide deterministic output of repeated method calls.
103
144
 
104
145
  ```ruby
105
146
  Faker::Config.random = Random.new(42)
@@ -114,14 +155,49 @@ Faker::Config.random.seed #=> 185180369676275068918401850258677722187
114
155
  Faker::Company.bs #=> "cultivate viral synergies"
115
156
  ```
116
157
 
158
+ ### Customization
159
+
160
+ You may want Faker to print information depending on your location in the world.
161
+ To assist you in this, Faker uses the `I18n` gem to store strings and formats to
162
+ represent the names and postal codes of the area of your choosing.
163
+
164
+ Just set the locale you want as shown below, and Faker will take care of the rest.
165
+
166
+ ```ruby
167
+ Faker::Config.locale = 'es'
168
+ # or
169
+ Faker::Config.locale = :es
170
+ ```
171
+
172
+ Note: Overriding the default locale might not be thread-safe. See [Locale setting can be ignored #2563](https://github.com/faker-ruby/faker/issues/2563) for more details.
173
+
174
+ To override Faker's locales,
175
+ check out the [locales README](lib/locales/README.md).
176
+
177
+ ### Minitest and Faker >= 2.22
178
+
179
+ To prevent Faker (version >= 2.22) from generating duplicate values when using Minitest,
180
+ you might need to add the following to the `test_helper.rb` or `rails_helper.rb` file:
181
+
182
+ ```ruby
183
+ Faker::Config.random = Random.new
184
+ ```
185
+
186
+ See [Issue #2534](https://github.com/faker-ruby/faker/issues/2534) for more details.
187
+
117
188
  ## Generators
189
+
190
+ This is the full list of generators available with this gem. If you need details about any of them, make sure to consult the documentation.
191
+
118
192
  **NOTE: Some of the generators below aren't released yet. If you want to use them, change the line in your gemfile to:**
119
193
 
120
194
  ```ruby
121
- gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'master'
195
+ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'main'
122
196
  ```
123
197
 
124
- ### Default
198
+ <details>
199
+ <summary>Default</summary>
200
+
125
201
  - [Faker::Address](doc/default/address.md)
126
202
  - [Faker::Alphanumeric](doc/default/alphanumeric.md)
127
203
  - [Faker::Ancient](doc/default/ancient.md)
@@ -136,6 +212,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
136
212
  - [Faker::Boolean](doc/default/boolean.md)
137
213
  - [Faker::BossaNova](doc/default/bossa_nova.md)
138
214
  - [Faker::Business](doc/default/business.md)
215
+ - [Faker::Camera](doc/default/camera.md)
139
216
  - [Faker::Cannabis](doc/default/cannabis.md)
140
217
  - [Faker::ChileRut](doc/default/chile_rut.md)
141
218
  - [Faker::ChuckNorris](doc/default/chuck_norris.md)
@@ -164,7 +241,6 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
164
241
  - [Faker::Emotion](doc/default/emotion.md)
165
242
  - [Faker::Esport](doc/default/esport.md)
166
243
  - [Faker::File](doc/default/file.md)
167
- - [Faker::Fillmurray](doc/default/fillmurray.md)
168
244
  - [Faker::Finance](doc/default/finance.md)
169
245
  - [Faker::Food](doc/default/food.md)
170
246
  - [Faker::FunnyName](doc/default/funny_name.md)
@@ -183,7 +259,6 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
183
259
  - [Faker::Kpop](doc/default/kpop.md)
184
260
  - [Faker::Lorem](doc/default/lorem.md)
185
261
  - [Faker::LoremFlickr](doc/default/lorem_flickr.md)
186
- - [Faker::LoremPixel](doc/default/lorem_pixel.md)
187
262
  - [Faker::Markdown](doc/default/markdown.md)
188
263
  - [Faker::Marketing](doc/default/marketing.md)
189
264
  - [Faker::Measurement](doc/default/measurement.md)
@@ -217,31 +292,54 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
217
292
  - [Faker::University](doc/default/university.md)
218
293
  - [Faker::Vehicle](doc/default/vehicle.md)
219
294
  - [Faker::Verbs](doc/default/verbs.md)
295
+ - [Faker::VulnerabilityIdentifier](doc/default/vulnerability_identifier.md)
220
296
  - [Faker::WorldCup](doc/default/world_cup.md)
297
+ </details>
298
+
299
+ <details>
300
+ <summary>Blockchain</summary>
221
301
 
222
- ### Blockchain
223
302
  - [Faker::Blockchain::Aeternity](doc/blockchain/aeternity.md)
224
303
  - [Faker::Blockchain::Bitcoin](doc/blockchain/bitcoin.md)
225
304
  - [Faker::Blockchain::Ethereum](doc/blockchain/ethereum.md)
226
305
  - [Faker::Blockchain::Tezos](doc/blockchain/tezos.md)
306
+ </details>
307
+
308
+ <details>
309
+ <summary>Books</summary>
227
310
 
228
- ### Books
229
311
  - [Faker::Book](doc/books/book.md)
230
312
  - [Faker::Books::CultureSeries](doc/books/culture_series.md)
231
313
  - [Faker::Books::Dune](doc/books/dune.md)
232
314
  - [Faker::Books::Lovecraft](doc/books/lovecraft.md)
315
+ - [Faker::Books::TheKingkillerChronicle](doc/books/the_kingkiller_chronicle.md)
316
+ </details>
317
+
318
+ <details>
319
+ <summary>Fantasy</summary>
233
320
 
234
- ### Fantasy
235
321
  - [Faker::Fantasy::Tolkien](doc/fantasy/tolkien.md)
322
+ </details>
323
+
324
+ <details>
325
+ <summary>Travel</summary>
326
+
327
+ - [Faker:Travel::Airport](doc/travel/airport.md)
328
+ </details>
329
+
330
+ <details>
331
+ <summary>Creature</summary>
236
332
 
237
- ### Creature
238
333
  - [Faker::Creature::Animal](doc/creature/animal.md)
239
334
  - [Faker::Creature::Bird](doc/creature/bird.md)
240
335
  - [Faker::Creature::Cat](doc/creature/cat.md)
241
336
  - [Faker::Creature::Dog](doc/creature/dog.md)
242
337
  - [Faker::Creature::Horse](doc/creature/horse.md)
338
+ </details>
339
+
340
+ <details>
341
+ <summary>Games</summary>
243
342
 
244
- ### Games
245
343
  - [Faker::Game](doc/games/game.md)
246
344
  - [Faker::Games::ClashOfClans](doc/games/clash_of_clans.md)
247
345
  - [Faker::Games::DnD](doc/games/dnd.md)
@@ -265,8 +363,12 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
265
363
  - [Faker::Games::Witcher](doc/games/witcher.md)
266
364
  - [Faker::Games::WorldOfWarcraft](doc/games/world_of_warcraft.md)
267
365
  - [Faker::Games::Zelda](doc/games/zelda.md)
366
+ </details>
268
367
 
269
- ### Japanese Media
368
+ <details>
369
+ <summary>Japanese Media</summary>
370
+
371
+ - [Faker::JapaneseMedia::CowboyBebop](doc/japanese_media/cowboy_bebop.md)
270
372
  - [Faker::JapaneseMedia::DragonBall](doc/japanese_media/dragon_ball.md)
271
373
  - [Faker::JapaneseMedia::OnePiece](doc/japanese_media/one_piece.md)
272
374
  - [Faker::JapaneseMedia::StudioGhibli](doc/japanese_media/studio_ghibli.md)
@@ -274,9 +376,14 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
274
376
  - [Faker::JapaneseMedia::Naruto](doc/japanese_media/naruto.md)
275
377
  - [Faker::JapaneseMedia::Doraemon](doc/japanese_media/doraemon.md)
276
378
  - [Faker::JapaneseMedia::Conan](doc/japanese_media/conan.md)
379
+ - [Faker::JapaneseMedia::FmaBrotherhood](doc/japanese_media/fullmetal_alchemist_brotherhood.md)
380
+ </details>
381
+
382
+ <details>
383
+ <summary>Movies</summary>
277
384
 
278
- ### Movies
279
385
  - [Faker::Movie](doc/movies/movie.md)
386
+ - [Faker::Movies::Avatar](doc/movies/avatar.md)
280
387
  - [Faker::Movies::BackToTheFuture](doc/movies/back_to_the_future.md)
281
388
  - [Faker::Movies::Departed](doc/movies/departed.md)
282
389
  - [Faker::Movies::Ghostbusters](doc/movies/ghostbusters.md)
@@ -288,9 +395,13 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
288
395
  - [Faker::Movies::LordOfTheRings](doc/movies/lord_of_the_rings.md)
289
396
  - [Faker::Movies::PrincessBride](doc/movies/princess_bride.md)
290
397
  - [Faker::Movies::StarWars](doc/movies/star_wars.md)
398
+ - [Faker::Movies::TRON](doc/movies/tron.md)
291
399
  - [Faker::Movies::VForVendetta](doc/movies/v_for_vendetta.md)
400
+ </details>
401
+
402
+ <details>
403
+ <summary>Music</summary>
292
404
 
293
- ### Music
294
405
  - [Faker::Music](doc/music/music.md)
295
406
  - [Faker::Music::GratefulDead](doc/music/grateful_dead.md)
296
407
  - [Faker::Music::Hiphop](doc/music/hiphop.md)
@@ -301,23 +412,36 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
301
412
  - [Faker::Music::RockBand](doc/music/rock_band.md)
302
413
  - [Faker::Music::Rush](doc/music/rush.md)
303
414
  - [Faker::Music::UmphreysMcgee](doc/music/umphreys_mcgee.md)
415
+ </details>
416
+
417
+ <details>
418
+ <summary>Quotes</summary>
304
419
 
305
- ### Quotes
306
420
  - [Faker::Quote](doc/quotes/quote.md)
307
421
  - [Faker::Quotes::Chiquito](doc/quotes/chiquito.md)
308
422
  - [Faker::Quotes::Rajnikanth](doc/quotes/rajnikanth.md)
309
423
  - [Faker::Quotes::Shakespeare](doc/quotes/shakespeare.md)
424
+ </details>
310
425
 
426
+ <details>
427
+ <summary>Sports</summary>
311
428
 
312
- ### Sports
429
+ - [Faker::Sports](doc/sports/sports.md)
313
430
  - [Faker::Sports::Basketball](doc/sports/basketball.md)
431
+ - [Faker::Sports::Chess](doc/sports/chess.md)
314
432
  - [Faker::Sports::Football](doc/sports/football.md)
433
+ - [Faker::Sports::Mountaineering](doc/sports/mountaineering.md)
434
+ - [Faker::Sports::Volleyball](doc/sports/volleyball.md)
435
+ </details>
436
+
437
+ <details>
438
+ <summary>Tv Shows</summary>
315
439
 
316
- ### Tv Shows
317
440
  - [Faker::TvShows::AquaTeenHungerForce](doc/tv_shows/aqua_teen_hunger_force.md)
318
441
  - [Faker::TvShows::BigBangTheory](doc/tv_shows/big_bang_theory.md)
319
442
  - [Faker::TvShows::BojackHorseman](doc/tv_shows/bojack_horseman.md)
320
443
  - [Faker::TvShows::BreakingBad](doc/tv_shows/breaking_bad.md)
444
+ - [Faker::TvShows::BrooklynNineNine](doc/tv_shows/brooklyn_nine_nine.md)
321
445
  - [Faker::TvShows::Buffy](doc/tv_shows/buffy.md)
322
446
  - [Faker::TvShows::Community](doc/tv_shows/community.md)
323
447
  - [Faker::TvShows::DrWho](doc/tv_shows/dr_who.md)
@@ -337,6 +461,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
337
461
  - [Faker::TvShows::SiliconValley](doc/tv_shows/silicon_valley.md)
338
462
  - [Faker::TvShows::Simpsons](doc/tv_shows/simpsons.md)
339
463
  - [Faker::TvShows::SouthPark](doc/tv_shows/south_park.md)
464
+ - [Faker::TvShows::Spongebob](doc/tv_shows/spongebob.md)
340
465
  - [Faker::TvShows::StarTrek](doc/tv_shows/star_trek.md)
341
466
  - [Faker::TvShows::Stargate](doc/tv_shows/stargate.md)
342
467
  - [Faker::TvShows::StrangerThings](doc/tv_shows/stranger_things.md)
@@ -348,56 +473,25 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
348
473
  - [Faker::TvShows::TheThickOfIt](doc/tv_shows/the_thick_of_it.md)
349
474
  - [Faker::TvShows::TwinPeaks](doc/tv_shows/twin_peaks.md)
350
475
  - [Faker::TvShows::VentureBros](doc/tv_shows/venture_bros.md)
351
-
352
- ## Customization
353
- Since you may want to make addresses and other types of data look different
354
- depending on where in the world you are (US postal codes vs. UK postal codes,
355
- for example), Faker uses the I18n gem to store strings (like state names) and
356
- formats (US postal codes are NNNNN while UK postal codes are AAN NAA),
357
- allowing you to get different formats by switching locales. Just set
358
- Faker::Config.locale to the locale you want, and Faker will take care of the
359
- rest.
360
-
361
- If your locale doesn't already exist, create it in the `lib/locales` directory
362
- and you can then override or add elements to suit your needs. See more about how to
363
- use locales [here](lib/locales/README.md)
364
-
365
- ```yaml
366
- en-au-ocker:
367
- faker:
368
- name:
369
- # Existing faker field, new data
370
- first_name:
371
- - Charlotte
372
- - Ava
373
- - Chloe
374
- - Emily
375
-
376
- # New faker fields
377
- ocker_first_name:
378
- - Bazza
379
- - Bluey
380
- - Davo
381
- - Johno
382
- - Shano
383
- - Shazza
384
- region:
385
- - South East Queensland
386
- - Wide Bay Burnett
387
- - Margaret River
388
- - Port Pirie
389
- - Gippsland
390
- - Elizabeth
391
- - Barossa
392
- ```
476
+ </details>
393
477
 
394
478
  ## Contributing
395
- See [CONTRIBUTING.md](https://github.com/stympy/faker/blob/master/CONTRIBUTING.md).
396
479
 
397
- ## Contact
398
- Comments and feedback are welcome. Send an email to Benjamin Curtis via the [google group](http://groups.google.com/group/ruby-faker).
480
+ If you have problems, please create a [GitHub Issue](/.github/ISSUE_TEMPLATE/bug-report.md).
481
+
482
+ Take a look at the [Contributing](CONTRIBUTING.md) document for
483
+ instructions on setting up the repo on your machine, understanding the codebase,
484
+ and creating a good pull request.
399
485
 
400
- You can also join our [discord channel](https://discord.gg/RMumTwB) to discuss anything regarding improvements or feature requests.
486
+ There is a [Discord channel](https://discord.gg/RMumTwB) to discuss anything
487
+ regarding improvements or feature requests.
488
+
489
+ Thank you, contributors!
490
+
491
+ ## Versioning
492
+
493
+ Faker follows Semantic Versioning 2.0 as defined at https://semver.org.
401
494
 
402
495
  ## License
496
+
403
497
  This code is free to use under the terms of the MIT license.
@@ -61,7 +61,7 @@ module Faker
61
61
  def rand_strings(length = 50)
62
62
  hex_alphabet = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
63
63
  var = +''
64
- length.times { var << sample(shuffle(hex_alphabet.split(''))) }
64
+ length.times { var << sample(shuffle(hex_alphabet.chars)) }
65
65
  var
66
66
  end
67
67
  end
@@ -17,7 +17,7 @@ module Faker
17
17
  def address
18
18
  hex_alphabet = '0123456789abcdef'
19
19
  var = +'0x'
20
- 40.times { var << sample(shuffle(hex_alphabet.split(''))) }
20
+ 40.times { var << sample(shuffle(hex_alphabet.chars)) }
21
21
  var
22
22
  end
23
23
  end
@@ -125,7 +125,7 @@ module Faker
125
125
  # @return [String]
126
126
  def encode_tz(prefix, payload_size)
127
127
  prefix = PREFIXES.fetch(prefix)
128
- packed = prefix.map(&:chr).join('') + Faker::Config.random.bytes(payload_size)
128
+ packed = prefix.map(&:chr).join + Faker::Config.random.bytes(payload_size)
129
129
  checksum = OpenSSL::Digest::SHA256.digest(OpenSSL::Digest::SHA256.digest(packed))[0..3]
130
130
  Faker::Base58.encode(packed + checksum)
131
131
  end
@@ -71,11 +71,7 @@ module Faker
71
71
  # #=> "He who controls the spice, controls the universe!"
72
72
  #
73
73
  # @faker.version 1.9.3
74
- def quote(legacy_character = NOT_GIVEN, character: nil)
75
- warn_for_deprecated_arguments do |keywords|
76
- keywords << :character if legacy_character != NOT_GIVEN
77
- end
78
-
74
+ def quote(character: nil)
79
75
  quoted_characters = translate('faker.dune.quotes').keys
80
76
 
81
77
  if character.nil?
@@ -106,11 +102,7 @@ module Faker
106
102
  # #=> "May thy knife chip and shatter."
107
103
  #
108
104
  # @faker.version 1.9.3
109
- def saying(legacy_source = NOT_GIVEN, source: nil)
110
- warn_for_deprecated_arguments do |keywords|
111
- keywords << :source if legacy_source != NOT_GIVEN
112
- end
113
-
105
+ def saying(source: nil)
114
106
  sourced_sayings = translate('faker.dune.sayings').keys
115
107
 
116
108
  if source.nil?
@@ -29,11 +29,7 @@ module Faker
29
29
  # #=> "Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fht...
30
30
  #
31
31
  # @faker.version 1.9.3
32
- def fhtagn(legacy_number = NOT_GIVEN, number: 1)
33
- warn_for_deprecated_arguments do |keywords|
34
- keywords << :number if legacy_number != NOT_GIVEN
35
- end
36
-
32
+ def fhtagn(number: 1)
37
33
  Array.new(number) { fetch('lovecraft.fhtagn') }.join('. ')
38
34
  end
39
35
 
@@ -86,12 +82,7 @@ module Faker
86
82
  # #=> "Effulgence unmentionable gambrel."
87
83
  #
88
84
  # @faker.version 1.9.3
89
- def sentence(legacy_word_count = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, random_words_to_add: 6, open_compounds_allowed: true)
90
- warn_for_deprecated_arguments do |keywords|
91
- keywords << :word_count if legacy_word_count != NOT_GIVEN
92
- keywords << :random_words_to_add if legacy_random_words_to_add != NOT_GIVEN
93
- end
94
-
85
+ def sentence(word_count: 4, random_words_to_add: 6, open_compounds_allowed: true)
95
86
  "#{words(number: word_count + rand(random_words_to_add.to_i).to_i, spaces_allowed: open_compounds_allowed).join(' ').capitalize}."
96
87
  end
97
88
 
@@ -138,12 +129,7 @@ module Faker
138
129
  # # ]
139
130
  #
140
131
  # @faker.version 1.9.3
141
- def words(legacy_number = NOT_GIVEN, legacy_spaces_allowed = NOT_GIVEN, number: 3, spaces_allowed: false)
142
- warn_for_deprecated_arguments do |keywords|
143
- keywords << :number if legacy_number != NOT_GIVEN
144
- keywords << :spaces_allowed if legacy_spaces_allowed != NOT_GIVEN
145
- end
146
-
132
+ def words(number: 3, spaces_allowed: false)
147
133
  resolved_num = resolve(number)
148
134
  word_list = translate('faker.lovecraft.words')
149
135
  word_list *= ((resolved_num / word_list.length) + 1)
@@ -176,11 +162,7 @@ module Faker
176
162
  # # ]
177
163
  #
178
164
  # @faker.version 1.9.3
179
- def sentences(legacy_number = NOT_GIVEN, number: 3)
180
- warn_for_deprecated_arguments do |keywords|
181
- keywords << :number if legacy_number != NOT_GIVEN
182
- end
183
-
165
+ def sentences(number: 3)
184
166
  [].tap do |sentences|
185
167
  1.upto(resolve(number)) do
186
168
  sentences << sentence(word_count: 3)
@@ -207,12 +189,7 @@ module Faker
207
189
  # #=> "Stench cyclopean fainted antiquarian nameless. Antiquarian ululate tenebrous non-euclidean effulgence."
208
190
  #
209
191
  # @faker.version 1.9.3
210
- def paragraph(legacy_sentence_count = NOT_GIVEN, legacy_random_sentences_to_add = NOT_GIVEN, sentence_count: 3, random_sentences_to_add: 3)
211
- warn_for_deprecated_arguments do |keywords|
212
- keywords << :sentence_count if legacy_sentence_count != NOT_GIVEN
213
- keywords << :random_sentences_to_add if legacy_random_sentences_to_add != NOT_GIVEN
214
- end
215
-
192
+ def paragraph(sentence_count: 3, random_sentences_to_add: 3)
216
193
  sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i).to_i).join(' ')
217
194
  end
218
195
 
@@ -238,11 +215,7 @@ module Faker
238
215
  # # ]
239
216
  #
240
217
  # @faker.version 1.9.3
241
- def paragraphs(legacy_number = NOT_GIVEN, number: 3)
242
- warn_for_deprecated_arguments do |keywords|
243
- keywords << :number if legacy_number != NOT_GIVEN
244
- end
245
-
218
+ def paragraphs(number: 3)
246
219
  [].tap do |paragraphs|
247
220
  1.upto(resolve(number)) do
248
221
  paragraphs << paragraph(sentence_count: 3)
@@ -263,11 +236,7 @@ module Faker
263
236
  # #=> "Effulgence madness noisome. Fungus stygian mortal madness amorphous dank. Decadent noisome hideous effulgence. Tentacles charne."
264
237
  #
265
238
  # @faker.version 1.9.3
266
- def paragraph_by_chars(legacy_characters = NOT_GIVEN, characters: 256)
267
- warn_for_deprecated_arguments do |keywords|
268
- keywords << :characters if legacy_characters != NOT_GIVEN
269
- end
270
-
239
+ def paragraph_by_chars(characters: 256)
271
240
  paragraph = paragraph(sentence_count: 3)
272
241
 
273
242
  paragraph += " #{paragraph(sentence_count: 3)}" while paragraph.length < characters