faker 3.3.1 → 3.4.1

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: 9cb066b564608902aac8699487a9d11cb48bac922915f51b2ca7d5e9ed2c3d5f
4
- data.tar.gz: edfabcbea53ec9ed1c7acd2dcf6c8fe6475efa56bae692758aaf6103de771993
3
+ metadata.gz: 8af27d99c348c9ae7dc6d06e29566ba78ca5b7f38639697d17dcb4a8403e0497
4
+ data.tar.gz: bd07375b615d5440b35e6c903a2ca68afcaecb8d0caed7eddac5e2a7d0c34946
5
5
  SHA512:
6
- metadata.gz: f76bde79e5d96a73b34d487a7bb2a8d1cc5f05631d9ba48952edbb2a3f6470409586a974676c329b7a61112f338c33ad631e6362a4c54242e4d61efe52f1f29c
7
- data.tar.gz: dcb683004a0cc255d076059a3b199870a921473355358d25afd73f904255db7f30297779ec75364ddebb2f806a6a874ef0e328e3dcce0549a3b6dfea8ee96e0a
6
+ metadata.gz: 6b54896707a3b7cd26bed81a5ee99af3e0d7cba59814f977c27d308ade1d56ba7670b83e4404982f1e51d1e42b9e8c229619e0737cd27c44a6922c6798084e04
7
+ data.tar.gz: 13c40edb228c8bdbbc5ac704775762dc19794c006a6ccd8d75dc7c3528ae19245a7163be4ffe213d11ae99529ad297a1b2ba356dd5ade3c500fa72312db04308
data/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # Changelog
2
2
 
3
+ ## [v3.4.1](https://github.com/faker-ruby/faker/tree/v3.4.1) (2024-05-28)
4
+
5
+ ### What's changed
6
+
7
+ * Performance: Sample arrays instead of performing shuffle and slice by @alextaujenis in https://github.com/faker-ruby/faker/pull/2940
8
+ * Performance: Reduce the time complexity of `Faker::Crypto` generators by @alextaujenis in https://github.com/faker-ruby/faker/pull/2938
9
+ * Remove tzinfo dependency by @stefannibrasil in https://github.com/faker-ruby/faker/pull/2952
10
+
11
+ ### Bug fixes
12
+
13
+ * Fix invalid IANA time zone identifier for `Atlantic/Cape_Verde` by @andrelaszlo in https://github.com/faker-ruby/faker/pull/2927
14
+ * Fix entry in faker.food.ingredients by @matthewmayer in https://github.com/faker-ruby/faker/pull/2933
15
+ * Docs: add absolute links to CONTRIBUTING from README by @matthewmayer in https://github.com/faker-ruby/faker/pull/2934
16
+ * Fix: `Faker::Number.hexadecimal` should include characters within the range of `[0-9a-f]` by @alextaujenis in https://github.com/faker-ruby/faker/pull/2942
17
+ * Username splits names by space and doesn't regex match them by @keshavbiswa in https://github.com/faker-ruby/faker/pull/2950
18
+
19
+ ### Features
20
+
21
+ * Add animals, desserts, foods, hobbies, house, and k-pop translations to the Korean locale file by @connie-feng in https://github.com/faker-ruby/faker/pull/2935
22
+ * Add adjectives to Korean locale file by @connie-feng in https://github.com/faker-ruby/faker/pull/2930
23
+ * Add emotions, movies, Pokemon, and Studio Ghibli to the Korean locale by @connie-feng in https://github.com/faker-ruby/faker/pull/2941
24
+ * Add Japanese translations for `Faker::Sports::Football`. by @yamat47 in https://github.com/faker-ruby/faker/pull/2903
25
+
26
+ ### Update local dependencies
27
+
28
+ * Bump rake from 13.1.0 to 13.2.1 by @dependabot in https://github.com/faker-ruby/faker/pull/2929
29
+ * Bump i18n from 1.14.4 to 1.14.5 by @dependabot in https://github.com/faker-ruby/faker/pull/2949
30
+ * Bump minitest from 5.22.3 to 5.23.1 by @dependabot in https://github.com/faker-ruby/faker/pull/2957
31
+ * Bump rubocop from 1.63.4 to 1.64.0 by @dependabot in https://github.com/faker-ruby/faker/pull/2958
32
+
33
+ ## New Contributors
34
+
35
+ * @connie-feng made their first contribution in https://github.com/faker-ruby/faker/pull/2930
36
+ * @andrelaszlo made their first contribution in https://github.com/faker-ruby/faker/pull/2927
37
+ * @matthewmayer made their first contribution in https://github.com/faker-ruby/faker/pull/2933
38
+
39
+ **Full Changelog**: https://github.com/faker-ruby/faker/compare/v3.3.1...v.3.4.1
40
+
41
+ ---------------------------------
42
+
3
43
  ## [v3.3.1](https://github.com/faker-ruby/faker/tree/v3.3.1) (2024-04-02)
4
44
 
5
45
  ### Bug fixes
data/README.md CHANGED
@@ -14,7 +14,7 @@ Faker helps you generate realistic test data, and populate your
14
14
  database with more than a couple of records while you're doing development.
15
15
 
16
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).
17
+ and it was the original impetus for the creation of this gem.
18
18
 
19
19
  ## Quick links
20
20
 
@@ -24,6 +24,14 @@ and it was the original impetus for the creation of this gem).
24
24
  [rubydocs]: https://www.rubydoc.info/gems/faker/
25
25
  [changelog]: CHANGELOG.md
26
26
 
27
+ ## In the media
28
+
29
+ - 📰 [With Great Humor Comes Great Developer Engagement] - KTH Royal Institute of Technology research
30
+ - 🎧 [Computer und Kommunikation 4.5.2024, komplette Sendung] - Deutschland Funk Radio Interview
31
+
32
+ [With Great Humor Comes Great Developer Engagement]: https://arxiv.org/pdf/2312.01680
33
+ [Computer und Kommunikation 4.5.2024, komplette Sendung]: https://www.deutschlandfunk.de/computer-und-kommunikation-4-5-2024-komplette-sendung-dlf-16492b03-100.html
34
+
27
35
  ## Table of Contents
28
36
 
29
37
  - [Faker](#faker)
@@ -486,9 +494,9 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'main
486
494
 
487
495
  ## Contributing
488
496
 
489
- **Note**: We are not accepting proposals for new generators and locales. The [Contributing](CONTRIBUTING.md) guide has a few notes about this decision.
497
+ **Note**: We are not accepting proposals for new generators and locales. The [Contributing](https://github.com/faker-ruby/faker/blob/main/CONTRIBUTING.md) guide has a few notes about this decision.
490
498
 
491
- Take a look at the [Contributing](CONTRIBUTING.md) document for
499
+ Take a look at the [Contributing](https://github.com/faker-ruby/faker/blob/main/CONTRIBUTING.md) document for
492
500
  instructions on setting up the repo on your machine, opening bug reports, understanding the codebase,
493
501
  and creating a good pull request.
494
502
 
@@ -133,10 +133,9 @@ module Faker
133
133
  resolved_num = resolve(number)
134
134
  word_list = translate('faker.lovecraft.words')
135
135
  word_list *= ((resolved_num / word_list.length) + 1)
136
+ words = sample(word_list, resolved_num)
137
+ return words if spaces_allowed
136
138
 
137
- return shuffle(word_list)[0, resolved_num] if spaces_allowed
138
-
139
- words = shuffle(word_list)[0, resolved_num]
140
139
  words.each_with_index { |w, i| words[i] = word if w =~ /\s/ }
141
140
  end
142
141
 
@@ -5,6 +5,15 @@ require 'openssl'
5
5
  module Faker
6
6
  class Crypto < Base
7
7
  class << self
8
+ # Setting the lorem character number lower than the default of
9
+ # 255 reduces the time complexity of each hash algorithm while
10
+ # still returning deterministically unique values. See
11
+ # https://github.com/faker-ruby/faker/pull/2938 for more info.
12
+ MD5_MIN_NUMBER_OF_CHARACTERS = 25
13
+ SHA1_MIN_NUMBER_OF_CHARACTERS = 31
14
+ SHA256_MIN_NUMBER_OF_CHARACTERS = 50
15
+ SHA512_MIN_NUMBER_OF_CHARACTERS = 100
16
+
8
17
  ##
9
18
  # Produces an MD5 hash.
10
19
  #
@@ -15,7 +24,7 @@ module Faker
15
24
  #
16
25
  # @faker.version 1.6.4
17
26
  def md5
18
- OpenSSL::Digest::MD5.hexdigest(Lorem.characters)
27
+ OpenSSL::Digest::MD5.hexdigest(Lorem.characters(number: MD5_MIN_NUMBER_OF_CHARACTERS))
19
28
  end
20
29
 
21
30
  ##
@@ -28,7 +37,7 @@ module Faker
28
37
  #
29
38
  # @faker.version 1.6.4
30
39
  def sha1
31
- OpenSSL::Digest::SHA1.hexdigest(Lorem.characters)
40
+ OpenSSL::Digest::SHA1.hexdigest(Lorem.characters(number: SHA1_MIN_NUMBER_OF_CHARACTERS))
32
41
  end
33
42
 
34
43
  ##
@@ -41,7 +50,7 @@ module Faker
41
50
  #
42
51
  # @faker.version 1.6.4
43
52
  def sha256
44
- OpenSSL::Digest::SHA256.hexdigest(Lorem.characters)
53
+ OpenSSL::Digest::SHA256.hexdigest(Lorem.characters(number: SHA256_MIN_NUMBER_OF_CHARACTERS))
45
54
  end
46
55
 
47
56
  ##
@@ -54,7 +63,7 @@ module Faker
54
63
  #
55
64
  # @faker.version next
56
65
  def sha512
57
- OpenSSL::Digest::SHA512.hexdigest(Lorem.characters)
66
+ OpenSSL::Digest::SHA512.hexdigest(Lorem.characters(number: SHA512_MIN_NUMBER_OF_CHARACTERS))
58
67
  end
59
68
  end
60
69
  end
@@ -39,10 +39,9 @@ module Faker
39
39
  (supplemental ? translate('faker.lorem.words') : [])
40
40
  )
41
41
  word_list *= ((resolved_num / word_list.length) + 1)
42
+ words = sample(word_list, resolved_num)
43
+ return words if spaces_allowed
42
44
 
43
- return shuffle(word_list)[0, resolved_num] if spaces_allowed
44
-
45
- words = shuffle(word_list)[0, resolved_num]
46
45
  words.each_with_index { |w, i| words[i] = word if w =~ /\s/ }
47
46
  end
48
47
 
@@ -63,9 +63,12 @@ module Faker
63
63
  # Faker::Internet.username(specifier: 20, separators: ['_']) #=> "nikki_sawaynnikki_saway"
64
64
  def username(specifier: nil, separators: %w[. _])
65
65
  with_locale(:en) do
66
- return shuffle(specifier.scan(/[[:word:]]+/)).join(sample(separators)).downcase if specifier.respond_to?(:scan)
67
-
68
66
  case specifier
67
+ when ::String
68
+ names = specifier&.gsub("'", '')&.split
69
+ shuffled_names = shuffle(names)
70
+
71
+ return shuffled_names.join(sample(separators)).downcase
69
72
  when Integer
70
73
  # If specifier is Integer and has large value, Argument error exception is raised to overcome memory full error
71
74
  raise ArgumentError, 'Given argument is too large' if specifier > 10**6
@@ -45,7 +45,7 @@ module Faker
45
45
  word_list -= exclude_words
46
46
  end
47
47
  word_list *= ((resolved_num / word_list.length) + 1)
48
- shuffle(word_list)[0, resolved_num]
48
+ sample(word_list, resolved_num)
49
49
  end
50
50
 
51
51
  ##
@@ -114,7 +114,7 @@ module Faker
114
114
  # @faker.version 1.0.0
115
115
  def hexadecimal(digits: 6)
116
116
  hex = ''
117
- digits.times { hex += rand(15).to_s(16) }
117
+ digits.times { hex += rand(16).to_s(16) }
118
118
  hex
119
119
  end
120
120
 
@@ -444,11 +444,11 @@ module Faker
444
444
  private
445
445
 
446
446
  def gender
447
- shuffle(%w[male female]).pop
447
+ sample(%w[male female])
448
448
  end
449
449
 
450
450
  def timezone
451
- shuffle((-12..12).to_a).pop
451
+ sample((-12..12).to_a)
452
452
  end
453
453
 
454
454
  def image
@@ -460,11 +460,11 @@ module Faker
460
460
  end
461
461
 
462
462
  def random_number_from_range(range)
463
- shuffle(range.to_a).pop
463
+ sample(range.to_a)
464
464
  end
465
465
 
466
466
  def random_boolean
467
- shuffle([true, false]).pop
467
+ sample([true, false])
468
468
  end
469
469
  end
470
470
  end
@@ -18,11 +18,9 @@ module Faker
18
18
  # @faker.version 1.8.6
19
19
  def rb_string(words: 1)
20
20
  resolved_num = resolve(words)
21
- word_list =
22
- translate('faker.lorem.words')
23
-
21
+ word_list = translate('faker.lorem.words')
24
22
  word_list *= ((resolved_num / word_list.length) + 1)
25
- shuffle(word_list)[0, resolved_num].join(' ')
23
+ sample(word_list, resolved_num).join(' ')
26
24
  end
27
25
 
28
26
  ##
data/lib/faker/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Faker # :nodoc:
4
- VERSION = '3.3.1'
4
+ VERSION = '3.4.1'
5
5
  end
@@ -1717,7 +1717,7 @@ en:
1717
1717
  - America/Godthab
1718
1718
  - Atlantic/South_Georgia
1719
1719
  - Atlantic/Azores
1720
- - Atlantic/Cabo_Verde
1720
+ - Atlantic/Cape_Verde
1721
1721
  - Europe/Dublin
1722
1722
  - Europe/London
1723
1723
  - Europe/Lisbon
@@ -455,7 +455,8 @@ en:
455
455
  - Pumpkin Seed
456
456
  - Purple Carrot
457
457
  - Purple Rice
458
- - Quark Quinc
458
+ - Quark
459
+ - Quince
459
460
  - Quinoa
460
461
  - Radicchio
461
462
  - Radish
@@ -0,0 +1,115 @@
1
+ ja:
2
+ faker:
3
+ football:
4
+ teams:
5
+ - レアル・マドリード
6
+ - FCバルセロナ
7
+ - バレンシアCF
8
+ - アトレティコ・マドリード
9
+ - マンチェスター・ユナイテッド
10
+ - チェルシー
11
+ - リヴァプール
12
+ - アーセナル
13
+ - トッテナム・ホットスパー
14
+ - ACミラン
15
+ - インテル・ミラノ
16
+ - ASローマ
17
+ - ユヴェントス
18
+ - バイエルン・ミュンヘン
19
+ - ボルシア・ドルトムント
20
+ - シャルケ04
21
+ - ベンフィカ
22
+ - ガラタサライ
23
+ - PSVアイントホーフェン
24
+ - LAギャラクシー
25
+ - パリ・サンジェルマン
26
+ players:
27
+ - リオネル・メッシ
28
+ - ジェラール・ピケ
29
+ - セルヒオ・ラモス
30
+ - クリスティアーノ・ロナウド
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
+ coaches:
60
+ - エルネスト・バルベルデ
61
+ - ジネディーヌ・ジダン
62
+ - ジョゼ・モウリーニョ
63
+ - アントニオ・コンテ
64
+ - ユルゲン・クロップ
65
+ - マウリシオ・ポチェッティーノ
66
+ - ディエゴ・シメオネ
67
+ - マッシミリアーノ・アッレグリ
68
+ - ユップ・ハインケス
69
+ - アーセン・ベンゲル
70
+ - ホルヘ・サンパオリ
71
+ - フェルナンド・サントス
72
+ - ディディエ・デシャン
73
+ - ヨアヒム・レーヴ
74
+ - フレン・ロペテギ
75
+ - マウリシオ・ポチェッティーノ
76
+ - ウナイ・エメリ
77
+ - マッシミリアーノ・アッレグリ
78
+ - トーマス・トゥヘル
79
+ competitions:
80
+ - UEFAヨーロッパ選手権
81
+ - アジアカップ
82
+ - アフリカネイションズカップ
83
+ - コパ・アメリカ
84
+ - UEFAチャンピオンズリーグ
85
+ - FIFAワールドカップ
86
+ - UEFAヨーロッパリーグ
87
+ - セリエA
88
+ - バークレイズ・プレミアリーグ
89
+ - ブンデスリーガ
90
+ - リーガ・サンタンデール
91
+ - FAカップ
92
+ - リーグ・アン
93
+ - プリメイラ・リーガ
94
+ - エールディヴィジ
95
+ - スーパーリーグ
96
+ - メジャーリーグサッカー
97
+ - コッパ・イタリア
98
+ - DFBポカール
99
+ - CONCACAFゴールドカップ
100
+ - ネーションズカップ
101
+ - コパ・デル・レイ
102
+ positions:
103
+ - ゴールキーパー
104
+ - フルバック
105
+ - ライトバック
106
+ - レフトバック
107
+ - ディフェンシブミッドフィールダー
108
+ - ミッドフィールダー
109
+ - アタッキングミッドフィールダー
110
+ - ライトミッドフィールダー
111
+ - レフトミッドフィールダー
112
+ - ライトウィング
113
+ - レフトウィング
114
+ - セカンドストライカー
115
+ - センターフォワード