faker 3.3.1 → 3.4.1

Sign up to get free protection for your applications and to get access to all the features.
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
+ - センターフォワード