faker 2.16.0 → 2.17.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: 18002d6c86949152fab3522919844331fc549e8593f46616c165a346cb210abd
4
- data.tar.gz: db62f2c9507addb919ee639d6f204ca15b604d30d87beeb86cc18a6299bce381
3
+ metadata.gz: 057f887ea424391e1a5e3c354c93435061ed58b21e6d96c8406a3caa2c53a114
4
+ data.tar.gz: 5c33ffaafb3374a76feaab9f83f03e3815e1fa5503b4aeddd40726a2fc3f5d41
5
5
  SHA512:
6
- metadata.gz: 8c9fd6bc54ace68f40dfd9b30618077086389a9447de27fb0ffb062715c9a531da95875ea0c50a9b5d02a7dd4105e80b58bd633aeb98da5cdeec132aba5ccc96
7
- data.tar.gz: 54016385c84f11b1bb7075d60c9063ca7f02659c7ea13c5cb31b315ece710c9761317a1208b100954426f41ff1d9c133427b52e6728c44ea517e5f6f2a624b40
6
+ metadata.gz: d117b98af058311ad015475303910e4d0761119eb171d544760d3687fb8b2eb8ffe791c44d39db1bd5244260fb8ca04f8e19923fdb1edee4dc4876b44388bf5e
7
+ data.tar.gz: cbf27dfec7b156d23eabb2136b2a265baee51b7673e8ae1ff063310fbfdc57402558574d94648ee764ba8ecc1ed732704ddfec70ec6118eaf4fb1b536cb5c039
data/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # Change Log
2
2
 
3
+ ## [v2.17.0](https://github.com/faker-ruby/faker/tree/v2.17.0) (2020-03-10)
4
+
5
+ ## Chores
6
+
7
+ - [PR #2272](https://github.com/faker-ruby/faker/pull/2272) Bump RuboCop to 1.10.0 [@koic](https://github.com/koic)
8
+ - [PR #2270](https://github.com/faker-ruby/faker/pull/2270) Generate different values when generating a hash [@DaniTheLion](https://github.com/DaniTheLion)
9
+ - [PR #2236](https://github.com/faker-ruby/faker/pull/2236) Move Digest classes to OpenSSL [@dbussink](https://github.com/dbussink)
10
+
11
+ ## Documentation
12
+
13
+ - [PR #2277](https://github.com/faker-ruby/faker/pull/2277) add Hip Hop To Path [@Josiassejod1](https://github.com/Josiassejod1)
14
+ - [PR #2276](https://github.com/faker-ruby/faker/pull/2276) Fix syntax highlighting and missing version [@ghiculescu](https://github.com/ghiculescu)
15
+ - [PR #2255](https://github.com/faker-ruby/faker/pull/2255) Correct capitalization of RuboCop in text [@jdufresne](https://github.com/jdufresne)
16
+ - [PR #2204](https://github.com/faker-ruby/faker/pull/2204) update documentation to include Float type [@BigBigDoudou](https://github.com/BigBigDoudou)
17
+
18
+ ## Feature Request
19
+
20
+ - [PR #2256](https://github.com/faker-ruby/faker/pull/2256) Add Faker::Educator.primary_school [@jdufresne](https://github.com/jdufresne)
21
+ - [PR #2248](https://github.com/faker-ruby/faker/pull/2248) Add Bank.iban_country_code [@mastermatt](https://github.com/mastermatt)
22
+ - [PR #2166](https://github.com/faker-ruby/faker/pull/2166) add binary number faker [@gabrielbaldao](https://github.com/gabrielbaldao)
23
+
24
+ ## Update locales
25
+
26
+ - [PR #2275](https://github.com/faker-ruby/faker/pull/2275) Add Japanese for Faker::Games::Orverwatch [@may-solty](https://github.com/may-solty)
27
+ - [PR #2268](https://github.com/faker-ruby/faker/pull/2268) Add Japanese for Faker::Games::SuperMario [@k-maekawa](https://github.com/k-maekawa)
28
+ - [PR #2258](https://github.com/faker-ruby/faker/pull/2258) Add es-AR locale [@fcolacilli](https://github.com/fcolacilli)
29
+ - [PR #2215](https://github.com/faker-ruby/faker/pull/2215) Unify model names to not contain manufacturer name [@berkos](https://github.com/berkos)
30
+
31
+ ------------------------------------------------------------------------------
32
+
3
33
  ## [v2.16.0](https://github.com/faker-ruby/faker/tree/v2.16.0) (2020-02-09)
4
34
 
5
35
  ## Chores
@@ -41,7 +71,7 @@
41
71
 
42
72
  ## Bug/Fixes
43
73
 
44
- - Rubocop 1.0 fixes [#2182](https://github.com/faker-ruby/faker/pull/2182) @amatsuda
74
+ - RuboCop 1.0 fixes [#2182](https://github.com/faker-ruby/faker/pull/2182) @amatsuda
45
75
  - Get rid of broken I18n locales configuration for the tests [#2168](https://github.com/faker-ruby/faker/pull/2168) @amatsuda
46
76
  - Fixes a bug when generating a password with min_length eq 1 [#2138](https://github.com/faker-ruby/faker/pull/2138) @adrian-rivera @Zeragamba
47
77
  - Improve Faker::Company.spanish_organisation_number [#2106](https://github.com/faker-ruby/faker/pull/2106)
@@ -108,13 +138,13 @@
108
138
 
109
139
  ## Update local dependencies
110
140
 
111
- - Update rubocop requirement from = 1.0.0 to = 1.1.0 [#2185](https://github.com/faker-ruby/faker/pull/2185)
112
- - Update rubocop requirement from = 0.93.1 to = 1.0.0 [#2172](https://github.com/faker-ruby/faker/pull/2172)
113
- - Update rubocop requirement from = 0.93.0 to = 0.93.1 [#2156](https://github.com/faker-ruby/faker/pull/2156)
114
- - Update rubocop requirement from = 0.92.0 to = 0.93.0 [#2151](https://github.com/faker-ruby/faker/pull/2151)
115
- - Update rubocop requirement from = 0.91.1 to = 0.92.0 [#2129](https://github.com/faker-ruby/faker/pull/2129)
116
- - Update rubocop requirement from = 0.91.0 to = 0.91.1 [#2126](https://github.com/faker-ruby/faker/pull/2126)
117
- - Update rubocop requirement from = 0.90.0 to = 0.91.0 [#2122](https://github.com/faker-ruby/faker/pull/2122)
141
+ - Update RuboCop requirement from = 1.0.0 to = 1.1.0 [#2185](https://github.com/faker-ruby/faker/pull/2185)
142
+ - Update RuboCop requirement from = 0.93.1 to = 1.0.0 [#2172](https://github.com/faker-ruby/faker/pull/2172)
143
+ - Update RuboCop requirement from = 0.93.0 to = 0.93.1 [#2156](https://github.com/faker-ruby/faker/pull/2156)
144
+ - Update RuboCop requirement from = 0.92.0 to = 0.93.0 [#2151](https://github.com/faker-ruby/faker/pull/2151)
145
+ - Update RuboCop requirement from = 0.91.1 to = 0.92.0 [#2129](https://github.com/faker-ruby/faker/pull/2129)
146
+ - Update RuboCop requirement from = 0.91.0 to = 0.91.1 [#2126](https://github.com/faker-ruby/faker/pull/2126)
147
+ - Update RuboCop requirement from = 0.90.0 to = 0.91.0 [#2122](https://github.com/faker-ruby/faker/pull/2122)
118
148
  - Update test-unit requirement from = 3.3.6 to = 3.3.7 [#2195](https://github.com/faker-ruby/faker/pull/2195)
119
149
  - Update timecop requirement from = 0.9.1 to = 0.9.2 [#2160](https://github.com/faker-ruby/faker/pull/2160)
120
150
 
@@ -161,9 +191,9 @@
161
191
 
162
192
  Update local dependencies
163
193
 
164
- - Update rubocop requirement from = 0.87.1 to = 0.88.0 (#2080)
165
- - Update rubocop requirement from = 0.87.0 to = 0.87.1 (#2075)
166
- - Update rubocop requirement from = 0.86.0 to = 0.87.0 (#2074)
194
+ - Update RuboCop requirement from = 0.87.1 to = 0.88.0 (#2080)
195
+ - Update RuboCop requirement from = 0.87.0 to = 0.87.1 (#2075)
196
+ - Update RuboCop requirement from = 0.86.0 to = 0.87.0 (#2074)
167
197
  - Bumps i18n from 1.8.4 to 1.8.5 (#2089)
168
198
  - Bumps i18n from 1.8.3 to 1.8.4 (#2083)
169
199
 
@@ -233,8 +263,8 @@ This version:
233
263
 
234
264
  ## Update local dependencies
235
265
 
236
- - Update rubocop requirement from = 0.81.0 to = 0.85.1
237
- - Update rubocop requirement from = 0.85.1 to = 0.86.0 (#2066)
266
+ - Update RuboCop requirement from = 0.81.0 to = 0.85.1
267
+ - Update RuboCop requirement from = 0.85.1 to = 0.86.0 (#2066)
238
268
  - Update test-unit requirement from = 3.3.5 to = 3.3.6 (#2046)
239
269
  - Bump i18n from 1.8.2 to 1.8.3 (#2034)
240
270
 
@@ -323,7 +353,7 @@ This version:
323
353
  ## Update local dependencies
324
354
 
325
355
  - Update minitest requirement from = 5.14.0 to = 5.14.1 (#1987)
326
- - Update rubocop requirement from = 0.80.1 to = 0.81.0 (#1955)
356
+ - Update RuboCop requirement from = 0.80.1 to = 0.81.0 (#1955)
327
357
  - Update pry requirement from = 0.13.0 to = 0.13.1 (#1963)
328
358
  - Update yard requirement from = 0.9.24 to = 0.9.25 (#1970)
329
359
 
@@ -355,8 +385,8 @@ This version:
355
385
  ## Update local dependencies
356
386
 
357
387
  - Update pry requirement from = 0.12.2 to = 0.13.0 (#1951)
358
- - Update rubocop requirement from = 0.80.0 to = 0.80.1 (#1941)
359
- - Update rubocop requirement from = 0.79.0 to = 0.80.0 (#1937)
388
+ - Update RuboCop requirement from = 0.80.0 to = 0.80.1 (#1941)
389
+ - Update RuboCop requirement from = 0.79.0 to = 0.80.0 (#1937)
360
390
 
361
391
  ------------------------------------------------------------------------------
362
392
 
@@ -428,7 +458,7 @@ This version:
428
458
  - Bump i18n from 1.8.0 to 1.8.1 (#1895)
429
459
  - Update i18n requirement from >= 1.6, < 1.8 to >= 1.6, < 1.9 (#1893)
430
460
  - Update yard requirement from = 0.9.23 to = 0.9.24 (#1892)
431
- - Update rubocop requirement from = 0.78.0 to = 0.79.0 (#1890)
461
+ - Update RuboCop requirement from = 0.78.0 to = 0.79.0 (#1890)
432
462
  - Update yard requirement from = 0.9.22 to = 0.9.23 (#1889)
433
463
  - Update yard requirement from = 0.9.20 to = 0.9.22 (#1882)
434
464
 
@@ -467,7 +497,7 @@ This version:
467
497
 
468
498
  ## Update local dependencies
469
499
 
470
- Update rubocop requirement from = 0.77.0 to = 0.78.0 (#1869)
500
+ Update RuboCop requirement from = 0.77.0 to = 0.78.0 (#1869)
471
501
 
472
502
  ------------------------------------------------------------------------------
473
503
 
@@ -523,7 +553,7 @@ This version:
523
553
 
524
554
  ## Update local dependencies
525
555
 
526
- - Update rubocop requirement from = 0.76.0 to = 0.77.0 (#1843)
556
+ - Update RuboCop requirement from = 0.76.0 to = 0.77.0 (#1843)
527
557
 
528
558
  ------------------------------------------------------------------------------
529
559
 
@@ -594,8 +624,8 @@ This version:
594
624
 
595
625
  ## Update local dependencies
596
626
 
597
- - Update rubocop requirement from = 0.75.0 to = 0.75.1 (#1811)
598
- - Update rubocop requirement from = 0.75.1 to = 0.76.0 (#1822)
627
+ - Update RuboCop requirement from = 0.75.0 to = 0.75.1 (#1811)
628
+ - Update RuboCop requirement from = 0.75.1 to = 0.76.0 (#1822)
599
629
  - Update minitest requirement from = 5.12.2 to = 5.13.0 (#1823)
600
630
 
601
631
  ------------------------------------------------------------------------------
@@ -637,7 +667,7 @@ This version introduces:
637
667
 
638
668
  ## Documentation
639
669
 
640
- - [PR #1771](https://github.com/faker-ruby/faker/pull/1771) Fix some rubocop comments that were showing up in YARD docs. [@connorshea](https://github.com/connorshea)
670
+ - [PR #1771](https://github.com/faker-ruby/faker/pull/1771) Fix some RuboCop comments that were showing up in YARD docs. [@connorshea](https://github.com/connorshea)
641
671
  - [PR #1767](https://github.com/faker-ruby/faker/pull/1767) Fix two incorrect flexible method calls. [@connorshea](https://github.com/connorshea)
642
672
  - [PR #1761](https://github.com/faker-ruby/faker/pull/1761) Add YARD docs for the Basketball and Football fakers. [@connorshea](https://github.com/connorshea)
643
673
  - [PR #1768](https://github.com/faker-ruby/faker/pull/1768) Add YARD docs for Faker::Restaurant. [@connorshea](https://github.com/connorshea)
@@ -710,7 +740,7 @@ The following development dependencies were updated:
710
740
 
711
741
  ## Chores
712
742
 
713
- - [PR #1724](https://github.com/faker-ruby/faker/pull/1724) Include rubocop-faker autocorrect in deprecation [@koic](https://github.com/koic)
743
+ - [PR #1724](https://github.com/faker-ruby/faker/pull/1724) Include RuboCop-faker autocorrect in deprecation [@koic](https://github.com/koic)
714
744
 
715
745
  ## Documentation
716
746
 
@@ -721,7 +751,7 @@ The following development dependencies were updated:
721
751
 
722
752
  The following development dependencies were updated:
723
753
  - rake requirement from = 12.3.1 to = 12.3.3 (#1719)
724
- - rubocop requirement from = 0.59.1 to = 0.74.0 (#1721)
754
+ - RuboCop requirement from = 0.59.1 to = 0.74.0 (#1721)
725
755
  - simplecov requirement from = 0.16.1 to = 0.17.0 (#1718)
726
756
 
727
757
  ------------------------------------------------------------------------------
@@ -1076,7 +1106,7 @@ Fix lib/faker/version.rb
1076
1106
  - [PR #1477](https://github.com/stympy/faker/pull/1477) Fixed bank account length [@jguthrie100](https://github.com/jguthrie100)
1077
1107
  - [PR #1494](https://github.com/stympy/faker/pull/1494) Fix Faker::Internet.ip_v4_address to include all IP ranges [@lucasqueiroz](https://github.com/lucasqueiroz)
1078
1108
  - [PR #1456](https://github.com/stympy/faker/pull/1456) fix: omit . from slug [@ivanoblomov](https://github.com/ivanoblomov)
1079
- - [PR #1436](https://github.com/stympy/faker/pull/1436) Fix regex and add magic string to pass rubocop check [@jakrzus](https://github.com/jakrzus)
1109
+ - [PR #1436](https://github.com/stympy/faker/pull/1436) Fix regex and add magic string to pass RuboCop check [@jakrzus](https://github.com/jakrzus)
1080
1110
  - [PR #1425](https://github.com/stympy/faker/pull/1425) NHS: fix occasional bad numbers [@ChaoticBoredom](https://github.com/ChaoticBoredom)
1081
1111
  - [PR #1421](https://github.com/stympy/faker/pull/1421) Faker::Internet.user_name can't handle UTF-8 arguments [@ivanoblomov](https://github.com/ivanoblomov)
1082
1112
  - [PR #1423](https://github.com/stympy/faker/pull/1423) Add missing locale tests - Part II [@vbrazo](https://github.com/vbrazo)
@@ -1304,7 +1334,7 @@ Fix lib/faker/version.rb
1304
1334
  - [PR #1179](https://github.com/stympy/faker/pull/1179) Random color with Placeholdit [@nicolas-brousse](https://github.com/nicolas-brousse)
1305
1335
  - [PR #1190](https://github.com/stympy/faker/pull/1190) Add Nation object, its specs and docs [@gkunwar](https://github.com/gkunwar)
1306
1336
  - [PR #1210](https://github.com/stympy/faker/pull/1210) Add coveralls [@vbrazo](https://github.com/vbrazo)
1307
- - [PR #924](https://github.com/stympy/faker/pull/924) Rubocop + fixes [@stephengroat](https://github.com/stephengroat)
1337
+ - [PR #924](https://github.com/stympy/faker/pull/924) RuboCop + fixes [@stephengroat](https://github.com/stephengroat)
1308
1338
  - [PR #900](https://github.com/stympy/faker/pull/900) Add Japanese lorem words to locale [@vietqhoang](https://github.com/vietqhoang)
1309
1339
 
1310
1340
  ### Update/add locales
@@ -1368,7 +1398,7 @@ Fix lib/faker/version.rb
1368
1398
 
1369
1399
  ### Documentation
1370
1400
  - [PR #1478](https://github.com/stympy/faker/pull/1478) Fixed documentation for Faker::Internet.password [@mrstebo](https://github.com/mrstebo)
1371
- - [PR #1453](https://github.com/stympy/faker/pull/1453) Add description to Rubocop cops [@vbrazo](https://github.com/vbrazo)
1401
+ - [PR #1453](https://github.com/stympy/faker/pull/1453) Add description to RuboCop cops [@vbrazo](https://github.com/vbrazo)
1372
1402
  - [PR #1121](https://github.com/stympy/faker/pull/1121) Better docs for Faker::Food.description [@jujulisan](https://github.com/jujulisan)
1373
1403
  - [PR #1257](https://github.com/stympy/faker/pull/1257) Fix method name in Faker::SingularSiegler [@mrstebo](https://github.com/mrstebo)
1374
1404
  - [PR #1256](https://github.com/stympy/faker/pull/1256) Fixing documentation - Faker::Name to Faker::Zelda [@mrstebo](https://github.com/mrstebo)
data/README.md CHANGED
@@ -285,6 +285,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
285
285
  ### Music
286
286
  - [Faker::Music](doc/music/music.md)
287
287
  - [Faker::Music::GratefulDead](doc/music/grateful_dead.md)
288
+ - [Faker::Music::HipHop](doc/music/hiphop.md)
288
289
  - [Faker::Music::Opera](doc/music/opera.md)
289
290
  - [Faker::Music::PearlJam](doc/music/pearl_jam.md)
290
291
  - [Faker::Music::Phish](doc/music/phish.md)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'digest'
3
+ require 'openssl'
4
4
  require 'securerandom'
5
5
 
6
6
  module Faker
@@ -51,7 +51,7 @@ module Faker
51
51
  def address_for(network)
52
52
  version = PROTOCOL_VERSIONS.fetch(network)
53
53
  packed = version.chr + Faker::Config.random.bytes(20)
54
- checksum = Digest::SHA2.digest(Digest::SHA2.digest(packed))[0..3]
54
+ checksum = OpenSSL::Digest::SHA256.digest(OpenSSL::Digest::SHA256.digest(packed))[0..3]
55
55
  Faker::Base58.encode(packed + checksum)
56
56
  end
57
57
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'digest'
3
+ require 'openssl'
4
4
  require 'securerandom'
5
5
 
6
6
  module Faker
@@ -126,7 +126,7 @@ module Faker
126
126
  def encode_tz(prefix, payload_size)
127
127
  prefix = PREFIXES.fetch(prefix)
128
128
  packed = prefix.map(&:chr).join('') + Faker::Config.random.bytes(payload_size)
129
- checksum = Digest::SHA2.digest(Digest::SHA2.digest(packed))[0..3]
129
+ checksum = OpenSSL::Digest::SHA256.digest(OpenSSL::Digest::SHA256.digest(packed))[0..3]
130
130
  Faker::Base58.encode(packed + checksum)
131
131
  end
132
132
  end
@@ -31,12 +31,13 @@ module Faker
31
31
  ##
32
32
  # Produces a bank iban number.
33
33
  #
34
- # @param country_code [String] Specifies what country prefix is used to generate the iban code.
34
+ # @param country_code [String, nil] Specifies what country prefix is used to generate the iban code. Providing `nil` will use a random country.
35
35
  # @return [String]
36
36
  #
37
37
  # @example
38
38
  # Faker::Bank.iban #=> "GB76DZJM33188515981979"
39
39
  # Faker::Bank.iban(country_code: "be") #=> "BE6375388567752043"
40
+ # Faker::Bank.iban(country_code: nil) #=> "DE45186738071857270067"
40
41
  #
41
42
  # @faker.version 1.7.0
42
43
  def iban(legacy_country_code = NOT_GIVEN, country_code: 'GB')
@@ -47,6 +48,8 @@ module Faker
47
48
  keywords << :country_code if legacy_country_code != NOT_GIVEN
48
49
  end
49
50
 
51
+ country_code ||= iban_country_code
52
+
50
53
  begin
51
54
  pattern = fetch("bank.iban_details.#{country_code.downcase}.bban_pattern")
52
55
  rescue I18n::MissingTranslationData
@@ -60,6 +63,19 @@ module Faker
60
63
  country_code.upcase + iban_checksum(country_code, account) + account
61
64
  end
62
65
 
66
+ ##
67
+ # Produces the ISO 3166 code of a country that uses the IBAN system.
68
+ #
69
+ # @return [String]
70
+ #
71
+ # @example
72
+ # Faker::Bank.iban_country_code #=> "CH"
73
+ #
74
+ # @faker.version next
75
+ def iban_country_code
76
+ sample(translate('faker.bank.iban_details').keys).to_s.upcase
77
+ end
78
+
63
79
  ##
64
80
  # Produces a bank name.
65
81
  #
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'digest'
3
+ require 'openssl'
4
4
 
5
5
  module Faker
6
6
  class Crypto < Base
@@ -15,7 +15,7 @@ module Faker
15
15
  #
16
16
  # @faker.version 1.6.4
17
17
  def md5
18
- Digest::MD5.hexdigest(Lorem.characters)
18
+ OpenSSL::Digest::MD5.hexdigest(Lorem.characters)
19
19
  end
20
20
 
21
21
  ##
@@ -28,7 +28,7 @@ module Faker
28
28
  #
29
29
  # @faker.version 1.6.4
30
30
  def sha1
31
- Digest::SHA1.hexdigest(Lorem.characters)
31
+ OpenSSL::Digest::SHA1.hexdigest(Lorem.characters)
32
32
  end
33
33
 
34
34
  ##
@@ -41,7 +41,7 @@ module Faker
41
41
  #
42
42
  # @faker.version 1.6.4
43
43
  def sha256
44
- Digest::SHA256.hexdigest(Lorem.characters)
44
+ OpenSSL::Digest::SHA256.hexdigest(Lorem.characters)
45
45
  end
46
46
  end
47
47
  end
@@ -72,6 +72,19 @@ module Faker
72
72
  parse('educator.secondary_school')
73
73
  end
74
74
 
75
+ ##
76
+ # Produces a primary school.
77
+ #
78
+ # @return [String]
79
+ #
80
+ # @example
81
+ # Faker::Educator.primary_school #=> "Brighthurst Elementary School"
82
+ #
83
+ # @faker.version next
84
+ def primary_school
85
+ parse('educator.primary_school')
86
+ end
87
+
75
88
  ##
76
89
  # Produces a campus name.
77
90
  #
@@ -139,11 +139,26 @@ module Faker
139
139
  hex
140
140
  end
141
141
 
142
+ # Produces a number in binary format.
143
+ #
144
+ # @param digits [Integer] Number of digits to generate the binary as string
145
+ # @return [String]
146
+ #
147
+ # @example
148
+ # Faker::Number.binary(digits: 4) #=> "1001"
149
+ #
150
+ # @faker.version next
151
+ def binary(digits: 4)
152
+ bin = ''
153
+ digits.times { bin += rand(2).to_s(2) }
154
+ bin
155
+ end
156
+
142
157
  ##
143
158
  # Produces a float given a mean and standard deviation.
144
159
  #
145
160
  # @param mean [Integer]
146
- # @param standard_deviation [Integer, Float]
161
+ # @param standard_deviation [Numeric]
147
162
  # @return [Float]
148
163
  #
149
164
  # @example
@@ -165,12 +180,13 @@ module Faker
165
180
  ##
166
181
  # Produces a number between two provided values. Boundaries are inclusive.
167
182
  #
168
- # @param from [Integer] The lowest number to include.
169
- # @param to [Integer] The highest number to include.
170
- # @return [Integer]
183
+ # @param from [Numeric] The lowest number to include.
184
+ # @param to [Numeric] The highest number to include.
185
+ # @return [Numeric]
171
186
  #
172
187
  # @example
173
188
  # Faker::Number.between(from: 1, to: 10) #=> 7
189
+ # Faker::Number.between(from: 0.0, to: 1.0) #=> 0.7844640543957383
174
190
  #
175
191
  # @faker.version 1.0.0
176
192
  def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 1.00, to: 5000.00)
@@ -186,10 +202,11 @@ module Faker
186
202
  # Produces a number within two provided values. Boundaries are inclusive or exclusive depending on the range passed.
187
203
  #
188
204
  # @param range [Range] The range from which to generate a number.
189
- # @return [Integer]
205
+ # @return [Numeric]
190
206
  #
191
207
  # @example
192
208
  # Faker::Number.within(range: 1..10) #=> 7
209
+ # Faker::Number.within(range: 0.0..1.0) #=> 0.7844640543957383
193
210
  #
194
211
  # @faker.version 1.0.0
195
212
  def within(legacy_range = NOT_GIVEN, range: 1.00..5000.00)
@@ -72,7 +72,7 @@ module Faker
72
72
  # Faker::Types.rb_hash(number: 2) #=> {name: "bob", last: "marley"}
73
73
  #
74
74
  # @faker.version 1.8.6
75
- def rb_hash(legacy_number = NOT_GIVEN, legacy_type = NOT_GIVEN, number: 1, type: random_type)
75
+ def rb_hash(legacy_number = NOT_GIVEN, legacy_type = NOT_GIVEN, number: 1, type: -> { random_type })
76
76
  warn_for_deprecated_arguments do |keywords|
77
77
  keywords << :number if legacy_number != NOT_GIVEN
78
78
  keywords << :type if legacy_type != NOT_GIVEN
@@ -80,7 +80,8 @@ module Faker
80
80
 
81
81
  {}.tap do |hsh|
82
82
  Lorem.words(number: number * 2).uniq.first(number).each do |s|
83
- hsh.merge!(s.to_sym => type)
83
+ value = type.is_a?(Proc) ? type.call : type
84
+ hsh.merge!(s.to_sym => value)
84
85
  end
85
86
  end
86
87
  end
@@ -102,7 +103,7 @@ module Faker
102
103
  keywords << :number if legacy_number != NOT_GIVEN
103
104
  end
104
105
 
105
- rb_hash(number: number, type: random_complex_type)
106
+ rb_hash(number: number, type: -> { random_complex_type })
106
107
  end
107
108
 
108
109
  ##
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 = '2.16.0'
4
+ VERSION = '2.17.0'
5
5
  end
@@ -14,7 +14,6 @@ module Faker
14
14
  @previous_results = Hash.new { |hash, key| hash[key] = Set.new }
15
15
  end
16
16
 
17
- # rubocop:disable Lint/MissingSuper
18
17
  def method_missing(name, *arguments)
19
18
  self.class.marked_unique.add(self)
20
19
 
@@ -29,8 +28,6 @@ module Faker
29
28
 
30
29
  raise RetryLimitExceeded, "Retry limit exceeded for #{name}"
31
30
  end
32
- # rubocop:enable Lint/MissingSuper
33
-
34
31
  # Have method_missing use ruby 2.x keywords if the method exists.
35
32
  # This is necessary because the syntax for passing arguments (`...`)
36
33
  # is invalid on versions before Ruby 2.7, so it can't be used.