faker 2.12.0 → 2.16.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 +4 -4
- data/CHANGELOG.md +240 -0
- data/History.md +4 -4
- data/README.md +18 -1
- data/lib/faker.rb +14 -14
- data/lib/faker/blockchain/aeternity.rb +4 -4
- data/lib/faker/blockchain/tezos.rb +28 -0
- data/lib/faker/books/dune.rb +15 -2
- data/lib/faker/books/lovecraft.rb +8 -4
- data/lib/faker/default/address.rb +34 -4
- data/lib/faker/default/app.rb +1 -1
- data/lib/faker/default/avatar.rb +1 -1
- data/lib/faker/default/bank.rb +4 -6
- data/lib/faker/default/barcode.rb +165 -0
- data/lib/faker/default/beer.rb +3 -3
- data/lib/faker/default/blood.rb +3 -3
- data/lib/faker/default/camera.rb +46 -0
- data/lib/faker/default/cannabis.rb +10 -0
- data/lib/faker/default/chile_rut.rb +47 -3
- data/lib/faker/default/chuck_norris.rb +1 -0
- data/lib/faker/default/code.rb +98 -17
- data/lib/faker/default/commerce.rb +1 -1
- data/lib/faker/default/company.rb +57 -11
- data/lib/faker/default/computer.rb +4 -4
- data/lib/faker/default/date.rb +16 -12
- data/lib/faker/default/driving_licence.rb +26 -2
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/default/faker_adjective.rb +35 -0
- data/lib/faker/default/file.rb +6 -4
- data/lib/faker/default/finance.rb +21 -0
- data/lib/faker/default/food.rb +1 -1
- data/lib/faker/default/gender.rb +1 -1
- data/lib/faker/default/hipster.rb +14 -11
- data/lib/faker/default/id_number.rb +88 -2
- data/lib/faker/default/internet.rb +266 -12
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +1 -1
- data/lib/faker/default/json.rb +7 -6
- data/lib/faker/default/lorem.rb +160 -5
- data/lib/faker/default/lorem_flickr.rb +67 -7
- data/lib/faker/default/lorem_pixel.rb +23 -0
- data/lib/faker/default/markdown.rb +91 -0
- data/lib/faker/default/measurement.rb +3 -2
- data/lib/faker/default/military.rb +26 -0
- data/lib/faker/default/mountain.rb +33 -0
- data/lib/faker/default/name.rb +15 -0
- data/lib/faker/default/nhs.rb +19 -0
- data/lib/faker/default/number.rb +6 -8
- data/lib/faker/default/omniauth.rb +62 -14
- data/lib/faker/default/placeholdit.rb +3 -2
- data/lib/faker/default/relationship.rb +1 -1
- data/lib/faker/default/space.rb +1 -1
- data/lib/faker/default/string.rb +3 -2
- data/lib/faker/default/stripe.rb +3 -3
- data/lib/faker/default/vehicle.rb +1 -1
- data/lib/faker/default/world_cup.rb +4 -4
- data/lib/faker/fantasy/tolkien.rb +67 -0
- data/lib/faker/games/clash_of_clans.rb +48 -0
- data/lib/faker/games/control.rb +9 -9
- data/lib/faker/games/dnd.rb +91 -16
- data/lib/faker/games/elder_scrolls.rb +26 -0
- data/lib/faker/games/heroes.rb +13 -0
- data/lib/faker/games/heroes_of_the_storm.rb +16 -5
- data/lib/faker/games/minecraft.rb +113 -0
- data/lib/faker/games/street_fighter.rb +61 -0
- data/lib/faker/games/super_mario.rb +48 -0
- data/lib/faker/games/touhou.rb +75 -0
- data/lib/faker/games/warhammer_fantasy.rb +5 -5
- data/lib/faker/games/world_of_warcraft.rb +26 -1
- data/lib/faker/japanese_media/conan.rb +48 -0
- data/lib/faker/japanese_media/doraemon.rb +48 -0
- data/lib/faker/japanese_media/dragon_ball.rb +26 -0
- data/lib/faker/japanese_media/naruto.rb +61 -0
- data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
- data/lib/faker/movies/departed.rb +3 -3
- data/lib/faker/movies/hobbit.rb +4 -4
- data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
- data/lib/faker/movies/lord_of_the_rings.rb +3 -3
- data/lib/faker/movies/movie.rb +13 -0
- data/lib/faker/movies/room.rb +63 -0
- data/lib/faker/movies/star_wars.rb +74 -2
- data/lib/faker/music/hiphop.rb +48 -0
- data/lib/faker/music/opera.rb +237 -1
- data/lib/faker/music/pearl_jam.rb +3 -3
- data/lib/faker/music/phish.rb +2 -2
- data/lib/faker/music/prince.rb +64 -0
- data/lib/faker/music/rock_band.rb +12 -0
- data/lib/faker/music/rush.rb +37 -0
- data/lib/faker/music/show.rb +3 -3
- data/lib/faker/quotes/quote.rb +26 -0
- data/lib/faker/quotes/rajnikanth.rb +1 -0
- data/lib/faker/quotes/shakespeare.rb +34 -0
- data/lib/faker/sports/volleyball.rb +74 -0
- data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +13 -0
- data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
- data/lib/faker/tv_shows/buffy.rb +17 -4
- data/lib/faker/tv_shows/dr_who.rb +1 -1
- data/lib/faker/tv_shows/final_space.rb +51 -0
- data/lib/faker/tv_shows/futurama.rb +65 -0
- data/lib/faker/tv_shows/simpsons.rb +14 -0
- data/lib/faker/tv_shows/suits.rb +3 -3
- data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +17 -4
- data/lib/faker/version.rb +1 -1
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/char.rb +20 -26
- data/lib/helpers/unique_generator.rb +3 -2
- data/lib/locales/de-AT.yml +4 -2
- data/lib/locales/de-CH.yml +3 -1
- data/lib/locales/de.yml +4 -2
- data/lib/locales/en-AU.yml +8 -2
- data/lib/locales/en-GB.yml +1 -1
- data/lib/locales/en-IND.yml +2 -1
- data/lib/locales/en-MS.yml +2 -1
- data/lib/locales/en-NEP.yml +4 -1
- data/lib/locales/en-NZ.yml +3 -1
- data/lib/locales/en-PAK.yml +2 -1
- data/lib/locales/en-SG.yml +2 -1
- data/lib/locales/en-US.yml +10 -10
- data/lib/locales/en-au-ocker.yml +2 -1
- data/lib/locales/en.yml +0 -3
- data/lib/locales/en/adjective.yml +179 -0
- data/lib/locales/en/animal.yml +1 -1
- data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
- data/lib/locales/en/bank.yml +1 -1
- data/lib/locales/en/barcode.yml +24 -0
- data/lib/locales/en/big_bang_theory.yml +38 -0
- data/lib/locales/en/buffy.yml +1 -1
- data/lib/locales/en/camera.yml +611 -0
- data/lib/locales/en/clash_of_clan.yml +101 -0
- data/lib/locales/en/company.yml +2 -2
- data/lib/locales/en/conan.yml +171 -0
- data/lib/locales/en/demographic.yml +218 -5
- data/lib/locales/en/dnd.yml +430 -33
- data/lib/locales/en/doraemon.yml +286 -0
- data/lib/locales/en/dota.yml +531 -63
- data/lib/locales/en/dragon_ball.yml +243 -1
- data/lib/locales/en/driving_license.yml +181 -0
- data/lib/locales/en/drone.yml +95 -0
- data/lib/locales/en/dune.yml +401 -131
- data/lib/locales/en/elder_scrolls.yml +583 -9
- data/lib/locales/en/fallout.yml +311 -133
- data/lib/locales/en/final_space.yml +37 -0
- data/lib/locales/en/finance.yml +53 -0
- data/lib/locales/en/football.yml +3 -3
- data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
- data/lib/locales/en/futurama.yml +344 -0
- data/lib/locales/en/half_life.yml +84 -3
- data/lib/locales/en/heroes.yml +408 -3
- data/lib/locales/en/heroes_of_the_storm.yml +131 -4
- data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
- data/lib/locales/en/jack_handey.yml +54 -0
- data/lib/locales/en/league_of_legends.yml +285 -6
- data/lib/locales/en/lebowski.yml +1 -1
- data/lib/locales/en/military.yml +179 -5
- data/lib/locales/en/minecraft.yml +663 -0
- data/lib/locales/en/mountain.yml +158 -0
- data/lib/locales/en/movie.yml +192 -1
- data/lib/locales/en/music.yml +451 -29
- data/lib/locales/en/myst.yml +87 -31
- data/lib/locales/en/name.yml +5 -4
- data/lib/locales/en/naruto.yml +231 -0
- data/lib/locales/en/opera.yml +168 -0
- data/lib/locales/en/overwatch.yml +2650 -2622
- data/lib/locales/en/pokemon.yml +417 -4
- data/lib/locales/en/prince.yml +227 -0
- data/lib/locales/en/quote.yml +692 -163
- data/lib/locales/en/rock_band.yml +1 -0
- data/lib/locales/en/room.yml +68 -0
- data/lib/locales/en/rush.yml +32 -0
- data/lib/locales/en/simpsons.yml +668 -0
- data/lib/locales/en/source.yml +30 -0
- data/lib/locales/en/star_trek.yml +1 -1
- data/lib/locales/en/star_wars.yml +1 -0
- data/lib/locales/en/street_fighter.yml +1524 -0
- data/lib/locales/en/studio_ghibli.yml +107 -0
- data/lib/locales/en/super_mario.yml +58 -0
- data/lib/locales/en/super_smash_bros.yml +18 -4
- data/lib/locales/en/tolkien.yml +2453 -0
- data/lib/locales/en/touhou.yml +839 -0
- data/lib/locales/en/volleyball.yml +501 -0
- data/lib/locales/en/witcher.yml +389 -7
- data/lib/locales/en/world_of_warcraft.yml +122 -4
- data/lib/locales/en/zelda.yml +962 -4
- data/lib/locales/es.yml +56 -0
- data/lib/locales/fi-FI.yml +1 -1
- data/lib/locales/fr-CA.yml +19 -5
- data/lib/locales/fr-CH.yml +2 -2
- data/lib/locales/fr.yml +12 -6
- data/lib/locales/id.yml +3 -1
- data/lib/locales/it.yml +2 -1
- data/lib/locales/ja.yml +10 -1
- data/lib/locales/ko.yml +34 -24
- data/lib/locales/nb-NO.yml +4 -2
- data/lib/locales/pt-BR.yml +1 -1
- data/lib/locales/pt.yml +3 -1
- data/lib/locales/ru.yml +3 -1
- data/lib/locales/sk.yml +4 -2
- data/lib/locales/uk.yml +2 -0
- metadata +66 -18
- data/lib/locales/en/hobbit.yml +0 -19
- data/lib/locales/en/lord_of_the_rings.yml +0 -6
|
@@ -121,7 +121,7 @@ module Faker
|
|
|
121
121
|
price = (rand(range) * 100).floor / 100.0
|
|
122
122
|
if as_string
|
|
123
123
|
price_parts = price.to_s.split('.')
|
|
124
|
-
price = price_parts[0]
|
|
124
|
+
price = "#{price_parts[0]}.#{price_parts[-1].ljust(2, '0')}"
|
|
125
125
|
end
|
|
126
126
|
price
|
|
127
127
|
end
|
|
@@ -162,12 +162,17 @@ module Faker
|
|
|
162
162
|
# @faker.version 1.8.5
|
|
163
163
|
#
|
|
164
164
|
# Get a random Spanish organization number. See more here https://es.wikipedia.org/wiki/N%C3%BAmero_de_identificaci%C3%B3n_fiscal
|
|
165
|
-
def spanish_organisation_number
|
|
165
|
+
def spanish_organisation_number(organization_type: nil)
|
|
166
166
|
# Valid leading character: A, B, C, D, E, F, G, H, J, N, P, Q, R, S, U, V, W
|
|
167
|
-
# 7 digit numbers
|
|
167
|
+
# format: 1 digit letter (organization type) + 7 digit numbers + 1 digit control (letter or number based on
|
|
168
|
+
# organization type)
|
|
168
169
|
letters = %w[A B C D E F G H J N P Q R S U V W]
|
|
169
|
-
|
|
170
|
-
|
|
170
|
+
|
|
171
|
+
organization_type = sample(letters) unless letters.include?(organization_type)
|
|
172
|
+
code = format('%07d', rand(10**7))
|
|
173
|
+
control = spanish_cif_control_digit(organization_type, code)
|
|
174
|
+
|
|
175
|
+
[organization_type, code, control].join
|
|
171
176
|
end
|
|
172
177
|
|
|
173
178
|
##
|
|
@@ -399,7 +404,18 @@ module Faker
|
|
|
399
404
|
formatted ? format('%s.%s.%s/%s-%s', *number.scan(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/).flatten) : number
|
|
400
405
|
end
|
|
401
406
|
|
|
407
|
+
##
|
|
402
408
|
# Get a random Russian tax number.
|
|
409
|
+
# @param region [String] Any region string
|
|
410
|
+
# @param type [Symbol] Legeal or not, defaults to :legal
|
|
411
|
+
#
|
|
412
|
+
# @return [String]
|
|
413
|
+
# @example
|
|
414
|
+
# Faker::Company.russian_tax_number #=> "0415584064"
|
|
415
|
+
# Faker::Company.russian_tax_number(region: 'AZ') #=> "AZ50124562"
|
|
416
|
+
# Faker::Company.russian_tax_number(region: 'AZ', type: false) #=> "AZ8802315465"
|
|
417
|
+
#
|
|
418
|
+
# @faker.version 1.9.4
|
|
403
419
|
def russian_tax_number(region: nil, type: :legal)
|
|
404
420
|
inn_number(region, type)
|
|
405
421
|
end
|
|
@@ -459,13 +475,11 @@ module Faker
|
|
|
459
475
|
end
|
|
460
476
|
end
|
|
461
477
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
control_digit
|
|
478
|
+
if (sum % 10).zero?
|
|
479
|
+
0
|
|
480
|
+
else
|
|
481
|
+
(sum / 10 + 1) * 10 - sum
|
|
482
|
+
end
|
|
469
483
|
end
|
|
470
484
|
|
|
471
485
|
def abn_checksum(abn)
|
|
@@ -504,7 +518,14 @@ module Faker
|
|
|
504
518
|
#
|
|
505
519
|
# Range of regions:
|
|
506
520
|
# https://ru.wikipedia.org/wiki/Коды_субъектов_Российской_Федерации
|
|
521
|
+
# region [String] Any region string
|
|
522
|
+
# @param type [Symbol] Legeal or not, defaults to :legal
|
|
507
523
|
#
|
|
524
|
+
# @return [String]
|
|
525
|
+
# @example
|
|
526
|
+
# Faker::Comnpany.russian_tax_number
|
|
527
|
+
# Faker::Comnpany.russian_tax_number(region: 'AZ')
|
|
528
|
+
# Faker::Comnpany.russian_tax_number(region: 'AZ', type: false)
|
|
508
529
|
# rubocop:enable Style/AsciiComments
|
|
509
530
|
def inn_number(region, type)
|
|
510
531
|
n10 = [2, 4, 10, 3, 5, 9, 4, 6, 8]
|
|
@@ -530,6 +551,31 @@ module Faker
|
|
|
530
551
|
end % 11 % 10
|
|
531
552
|
).to_s
|
|
532
553
|
end
|
|
554
|
+
|
|
555
|
+
def spanish_cif_control_digit(organization_type, code)
|
|
556
|
+
letters = %w[J A B C D E F G H]
|
|
557
|
+
|
|
558
|
+
control = code.split('').each_with_index.inject(0) do |sum, (value, index)|
|
|
559
|
+
if (index + 1).even?
|
|
560
|
+
sum + value.to_i
|
|
561
|
+
else
|
|
562
|
+
sum + spanish_b_algorithm(value.to_i)
|
|
563
|
+
end
|
|
564
|
+
end
|
|
565
|
+
|
|
566
|
+
control = control.to_s[-1].to_i
|
|
567
|
+
control = control.zero? ? control : 10 - control
|
|
568
|
+
|
|
569
|
+
%w[A B C D E F G H J U V].include?(organization_type) ? control : letters[control]
|
|
570
|
+
end
|
|
571
|
+
|
|
572
|
+
def spanish_b_algorithm(value)
|
|
573
|
+
result = value.to_i * 2
|
|
574
|
+
|
|
575
|
+
return result if result < 10
|
|
576
|
+
|
|
577
|
+
result.to_s[0].to_i + result.to_s[1].to_i
|
|
578
|
+
end
|
|
533
579
|
end
|
|
534
580
|
end
|
|
535
581
|
end
|
|
@@ -11,7 +11,7 @@ module Faker
|
|
|
11
11
|
# @example
|
|
12
12
|
# Faker::Computer.platform #=> "Linux"
|
|
13
13
|
#
|
|
14
|
-
# @faker.version
|
|
14
|
+
# @faker.version 2.12.0
|
|
15
15
|
def platform
|
|
16
16
|
fetch('computer.platform')
|
|
17
17
|
end
|
|
@@ -24,7 +24,7 @@ module Faker
|
|
|
24
24
|
# @example
|
|
25
25
|
# Faker::Computer.type #=> "server"
|
|
26
26
|
#
|
|
27
|
-
# @faker.version
|
|
27
|
+
# @faker.version 2.12.0
|
|
28
28
|
def type
|
|
29
29
|
fetch('computer.type')
|
|
30
30
|
end
|
|
@@ -38,7 +38,7 @@ module Faker
|
|
|
38
38
|
# @example
|
|
39
39
|
# Faker::Computer.os #=> "RHEL 6.10"
|
|
40
40
|
#
|
|
41
|
-
# @faker.version
|
|
41
|
+
# @faker.version 2.12.0
|
|
42
42
|
def os(platform: self.platform)
|
|
43
43
|
platform = self.platform unless fetch_all('computer.platform').include?(platform)
|
|
44
44
|
fetch("computer.os.#{platform.downcase}")
|
|
@@ -52,7 +52,7 @@ module Faker
|
|
|
52
52
|
# @example
|
|
53
53
|
# Faker::Computer.stack #=> "Linux, RHEL 6.10"
|
|
54
54
|
#
|
|
55
|
-
# @faker.version
|
|
55
|
+
# @faker.version 2.12.0
|
|
56
56
|
def stack
|
|
57
57
|
platform = self.platform
|
|
58
58
|
os = fetch("computer.os.#{platform.downcase}")
|
data/lib/faker/default/date.rb
CHANGED
|
@@ -6,13 +6,15 @@ module Faker
|
|
|
6
6
|
##
|
|
7
7
|
# Produce a random date between two dates.
|
|
8
8
|
#
|
|
9
|
-
# @param from [Date] The start of the usable date range.
|
|
10
|
-
# @param to [Date] The end of the usable date range.
|
|
9
|
+
# @param from [Date, String] The start of the usable date range.
|
|
10
|
+
# @param to [Date, String] The end of the usable date range.
|
|
11
11
|
# @return [Date]
|
|
12
12
|
#
|
|
13
|
-
# @example
|
|
14
|
-
# Faker::Date.between(from:
|
|
15
|
-
#
|
|
13
|
+
# @example if used with or without Rails (Active Support)
|
|
14
|
+
# Faker::Date.between(from: '2014-09-23', to: '2014-09-25') #=> #<Date: 2014-09-24>
|
|
15
|
+
#
|
|
16
|
+
# @example if used with Rails (Active Support)
|
|
17
|
+
# Faker::Date.between(from: 2.days.ago, to: Date.today) #=> #<Date: 2014-09-24>
|
|
16
18
|
#
|
|
17
19
|
# @faker.version 1.0.0
|
|
18
20
|
def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from:, to:)
|
|
@@ -32,14 +34,16 @@ module Faker
|
|
|
32
34
|
##
|
|
33
35
|
# Produce a random date between two dates.
|
|
34
36
|
#
|
|
35
|
-
# @param from [Date] The start of the usable date range.
|
|
36
|
-
# @param to [Date] The end of the usable date range.
|
|
37
|
-
# @param excepted [Date] A date to exclude.
|
|
37
|
+
# @param from [Date, String] The start of the usable date range.
|
|
38
|
+
# @param to [Date, String] The end of the usable date range.
|
|
39
|
+
# @param excepted [Date, String] A date to exclude.
|
|
38
40
|
# @return [Date]
|
|
39
41
|
#
|
|
40
|
-
# @example
|
|
41
|
-
# Faker::Date.between_except(from:
|
|
42
|
-
#
|
|
42
|
+
# @example if used with or without Rails (Active Support)
|
|
43
|
+
# Faker::Date.between_except(from: '2014-09-23', to: '2015-09-25', excepted: '2015-01-24') #=> #<Date: 2014-10-03>
|
|
44
|
+
#
|
|
45
|
+
# @example if used with Rails (Active Support)
|
|
46
|
+
# Faker::Date.between_except(from: 1.year.ago, to: 1.year.from_now, excepted: Date.today) #=> #<Date: 2014-10-03>
|
|
43
47
|
#
|
|
44
48
|
# @faker.version 1.6.2
|
|
45
49
|
def between_except(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_excepted = NOT_GIVEN, from:, to:, excepted:)
|
|
@@ -149,7 +153,7 @@ module Faker
|
|
|
149
153
|
# @example
|
|
150
154
|
# Faker::Date.in_date_period(month: 2) #=> #<Date: 2019-02-26>
|
|
151
155
|
#
|
|
152
|
-
# @faker.version
|
|
156
|
+
# @faker.version 2.13.0
|
|
153
157
|
def in_date_period(month: nil, year: ::Date.today.year)
|
|
154
158
|
from = ::Date.new(year, month || 1, 1)
|
|
155
159
|
to = ::Date.new(year, month || 12, ::Date.civil(year, month || 12, -1).day)
|
|
@@ -6,6 +6,8 @@ module Faker
|
|
|
6
6
|
NI_CHANCE = 0.03 # NI Pop is about 3% of total UK population
|
|
7
7
|
|
|
8
8
|
class << self
|
|
9
|
+
# rubocop:disable Metrics/ParameterLists
|
|
10
|
+
|
|
9
11
|
##
|
|
10
12
|
# Produces a random British driving licence number.
|
|
11
13
|
#
|
|
@@ -23,9 +25,7 @@ module Faker
|
|
|
23
25
|
# date_of_birth: Date.parse("1986-10-24")) #=> "OCARR815246J91HT"
|
|
24
26
|
#
|
|
25
27
|
# @faker.version 1.9.2
|
|
26
|
-
# rubocop:disable Metrics/ParameterLists
|
|
27
28
|
def british_driving_licence(legacy_last_name = NOT_GIVEN, legacy_initials = NOT_GIVEN, legacy_gender = NOT_GIVEN, legacy_date_of_birth = NOT_GIVEN, last_name: Faker::Name.last_name, initials: Faker::Name.initials, gender: random_gender, date_of_birth: Faker::Date.birthday(min_age: 18, max_age: 65))
|
|
28
|
-
# rubocop:enable Metrics/ParameterLists
|
|
29
29
|
warn_for_deprecated_arguments do |keywords|
|
|
30
30
|
keywords << :last_name if legacy_last_name != NOT_GIVEN
|
|
31
31
|
keywords << :initials if legacy_initials != NOT_GIVEN
|
|
@@ -40,6 +40,7 @@ module Faker
|
|
|
40
40
|
gb_licence_checksum
|
|
41
41
|
].join
|
|
42
42
|
end
|
|
43
|
+
# rubocop:enable Metrics/ParameterLists
|
|
43
44
|
|
|
44
45
|
##
|
|
45
46
|
# Produces a random Northern Irish licence number.
|
|
@@ -78,6 +79,23 @@ module Faker
|
|
|
78
79
|
end
|
|
79
80
|
end
|
|
80
81
|
|
|
82
|
+
##
|
|
83
|
+
# Produces a random USA driving licence number by state code passed.
|
|
84
|
+
#
|
|
85
|
+
# @return [String]
|
|
86
|
+
#
|
|
87
|
+
# @example
|
|
88
|
+
# Faker::DrivingLicence.usa_driving_licence #=> "V5598249"
|
|
89
|
+
# Faker::DrivingLicence.usa_driving_licence('new mexico') #=> "270692028"
|
|
90
|
+
# Faker::DrivingLicence.usa_driving_licence('New Mexico') #=> "68178637"
|
|
91
|
+
#
|
|
92
|
+
# @faker.version 2.14.0
|
|
93
|
+
def usa_driving_licence(state = 'California')
|
|
94
|
+
bothify(fetch("driving_licence.usa.#{state.to_s.strip.downcase.gsub(' ', '_')}"))
|
|
95
|
+
rescue I18n::MissingTranslationData => _e
|
|
96
|
+
raise InvalidStatePassed, "Invalid state code passed for USA, '#{state}'"
|
|
97
|
+
end
|
|
98
|
+
|
|
81
99
|
private
|
|
82
100
|
|
|
83
101
|
def random_gender
|
|
@@ -104,4 +122,10 @@ module Faker
|
|
|
104
122
|
end
|
|
105
123
|
end
|
|
106
124
|
end
|
|
125
|
+
|
|
126
|
+
class InvalidStatePassed < StandardError
|
|
127
|
+
def initialize(msg = 'Invalid state code passed')
|
|
128
|
+
super
|
|
129
|
+
end
|
|
130
|
+
end
|
|
107
131
|
end
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Drone < Base
|
|
5
|
+
class << self
|
|
6
|
+
##
|
|
7
|
+
# Returns random drone name with company
|
|
8
|
+
#
|
|
9
|
+
# @return [string]
|
|
10
|
+
#
|
|
11
|
+
# @example
|
|
12
|
+
# Faker::Drone.name #=> "DJI Mavic Air 2"
|
|
13
|
+
#
|
|
14
|
+
# @faker.version 2.14.0
|
|
15
|
+
def name
|
|
16
|
+
fetch('drone.name')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
##
|
|
20
|
+
# Returns total drone weight in grams
|
|
21
|
+
#
|
|
22
|
+
# @return [String]
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# Faker::Drone.weight #=> "570 g"
|
|
26
|
+
#
|
|
27
|
+
# @faker.version 2.14.0
|
|
28
|
+
def weight
|
|
29
|
+
parse('drone.weight')
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
##
|
|
33
|
+
# Returns maximum ascent speed for drone in m/s
|
|
34
|
+
#
|
|
35
|
+
# @return [String]
|
|
36
|
+
#
|
|
37
|
+
# @example
|
|
38
|
+
# Faker::Drone.max_ascent_speed #=> "4 m/s"
|
|
39
|
+
#
|
|
40
|
+
# @faker.version 2.14.0
|
|
41
|
+
def max_ascent_speed
|
|
42
|
+
parse('drone.max_ascent_speed')
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
##
|
|
46
|
+
# Returns maximum descent speed for drone in m/s
|
|
47
|
+
#
|
|
48
|
+
# @return [String]
|
|
49
|
+
#
|
|
50
|
+
# @example
|
|
51
|
+
# Faker::Drone.max_descent_speed #=> "4 m/s"
|
|
52
|
+
#
|
|
53
|
+
# @faker.version 2.14.0
|
|
54
|
+
def max_descent_speed
|
|
55
|
+
parse('drone.max_descent_speed')
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
##
|
|
59
|
+
# Returns max flight time for drone in optimal conditions
|
|
60
|
+
#
|
|
61
|
+
# @return [String]
|
|
62
|
+
#
|
|
63
|
+
# @example
|
|
64
|
+
# Faker::Drone.flight_time #=> "34 min"
|
|
65
|
+
#
|
|
66
|
+
# @faker.version 2.14.0
|
|
67
|
+
def flight_time
|
|
68
|
+
parse('drone.flight_time')
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
##
|
|
72
|
+
# Returns max altitude drone can go above sea level in meters
|
|
73
|
+
#
|
|
74
|
+
# @return [String]
|
|
75
|
+
#
|
|
76
|
+
# @example
|
|
77
|
+
# Faker::Drone.max_altitude #=> "5000 m"
|
|
78
|
+
#
|
|
79
|
+
# @faker.version 2.14.0
|
|
80
|
+
def max_altitude
|
|
81
|
+
parse('drone.max_altitude')
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
##
|
|
85
|
+
# Returns how far drone can go in optimal condition when full charged in meters
|
|
86
|
+
#
|
|
87
|
+
# @return [String]
|
|
88
|
+
#
|
|
89
|
+
# @example
|
|
90
|
+
# Faker::Drone.max_flight_distance #=> "18500 m"
|
|
91
|
+
#
|
|
92
|
+
# @faker.version 2.14.0
|
|
93
|
+
def max_flight_distance
|
|
94
|
+
parse('drone.max_flight_distance')
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
##
|
|
98
|
+
# Returns max horizontal speed by drone in m/s
|
|
99
|
+
#
|
|
100
|
+
# @return [String]
|
|
101
|
+
#
|
|
102
|
+
# @example
|
|
103
|
+
# Faker::Drone.max_speed #=> "19 m/s"
|
|
104
|
+
#
|
|
105
|
+
# @faker.version 2.14.0
|
|
106
|
+
def max_speed
|
|
107
|
+
parse('drone.max_speed')
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
##
|
|
111
|
+
# Returns max wind resistance by drone in m/s
|
|
112
|
+
#
|
|
113
|
+
# @return [String]
|
|
114
|
+
#
|
|
115
|
+
# @example
|
|
116
|
+
# Faker::Drone.max_wind_resistance #=> "10.5 m/s"
|
|
117
|
+
#
|
|
118
|
+
# @faker.version 2.14.0
|
|
119
|
+
def max_wind_resistance
|
|
120
|
+
parse('drone.max_wind_resistance')
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
##
|
|
124
|
+
# Returns max angular velocity of drone in degrees/s
|
|
125
|
+
#
|
|
126
|
+
# @return [String]
|
|
127
|
+
#
|
|
128
|
+
# @example
|
|
129
|
+
# Faker::Drone.max_angular_velocity #=> "250 degree/s"
|
|
130
|
+
#
|
|
131
|
+
# @faker.version 2.14.0
|
|
132
|
+
def max_angular_velocity
|
|
133
|
+
parse('drone.max_angular_velocity')
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
##
|
|
137
|
+
# Returns max tilt angle drone can go in degrees
|
|
138
|
+
#
|
|
139
|
+
# @return [String]
|
|
140
|
+
#
|
|
141
|
+
# @example
|
|
142
|
+
# Faker::Drone.max_tilt_angle #=> "35 degrees"
|
|
143
|
+
#
|
|
144
|
+
# @faker.version 2.14.0
|
|
145
|
+
def max_tilt_angle
|
|
146
|
+
parse('drone.max_tilt_angle')
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
##
|
|
150
|
+
# Returns operating temprature for drone in Fahrenheit
|
|
151
|
+
#
|
|
152
|
+
# @return [String]
|
|
153
|
+
#
|
|
154
|
+
# @example
|
|
155
|
+
# Faker::Drone.operating_temperature #=> "14-104F"
|
|
156
|
+
#
|
|
157
|
+
# @faker.version 2.14.0
|
|
158
|
+
def operating_temperature
|
|
159
|
+
parse('drone.operating_temperature')
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
##
|
|
163
|
+
# Returns the drone battery capacity
|
|
164
|
+
#
|
|
165
|
+
# @return [String]
|
|
166
|
+
#
|
|
167
|
+
# @example
|
|
168
|
+
# Faker::Drone.battery_capacity #=> "3500 mAh"
|
|
169
|
+
#
|
|
170
|
+
# @faker.version 2.14.0
|
|
171
|
+
def battery_capacity
|
|
172
|
+
parse('drone.battery_capacity')
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
##
|
|
176
|
+
# Returns battery voltage
|
|
177
|
+
#
|
|
178
|
+
# @return [String]
|
|
179
|
+
#
|
|
180
|
+
# @example
|
|
181
|
+
# Faker::Drone.battery_voltage #=> "13.2V"
|
|
182
|
+
#
|
|
183
|
+
# @faker.version 2.14.0
|
|
184
|
+
def battery_voltage
|
|
185
|
+
parse('drone.battery_voltage')
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
##
|
|
189
|
+
# Returns the battery type
|
|
190
|
+
#
|
|
191
|
+
# @return [String]
|
|
192
|
+
#
|
|
193
|
+
# @example
|
|
194
|
+
# Faker::Drone.battery_type #=> "LiPo 4S"
|
|
195
|
+
#
|
|
196
|
+
# @faker.version 2.14.0
|
|
197
|
+
def battery_type
|
|
198
|
+
parse('drone.battery_type')
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
##
|
|
202
|
+
# Returns total battery weight in grams
|
|
203
|
+
#
|
|
204
|
+
# @return [String]
|
|
205
|
+
#
|
|
206
|
+
# @example
|
|
207
|
+
# Faker::Drone.battery_weight #=> "198 g"
|
|
208
|
+
#
|
|
209
|
+
# @faker.version 2.14.0
|
|
210
|
+
def battery_weight
|
|
211
|
+
parse('drone.battery_weight')
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
##
|
|
215
|
+
# Returns charging temperature for battery in Fahrenheit
|
|
216
|
+
#
|
|
217
|
+
# @return [String]
|
|
218
|
+
#
|
|
219
|
+
# @example
|
|
220
|
+
# Faker::Drone.charging_temperature #=> "41-104F"
|
|
221
|
+
#
|
|
222
|
+
# @faker.version 2.14.0
|
|
223
|
+
def charging_temperature
|
|
224
|
+
parse('drone.charging_temperature')
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
##
|
|
228
|
+
# Returns max chargin power required for battery
|
|
229
|
+
#
|
|
230
|
+
# @return [String]
|
|
231
|
+
#
|
|
232
|
+
# @example
|
|
233
|
+
# Faker::Drone.max_charging_power #=> "38W"
|
|
234
|
+
#
|
|
235
|
+
# @faker.version 2.14.0
|
|
236
|
+
def max_charging_power
|
|
237
|
+
parse('drone.max_charging_power')
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
##
|
|
241
|
+
# Returns camera ISO range for drone
|
|
242
|
+
#
|
|
243
|
+
# @return [String]
|
|
244
|
+
#
|
|
245
|
+
# @example
|
|
246
|
+
# Faker::Drone.iso #=> "100-3200"
|
|
247
|
+
#
|
|
248
|
+
# @faker.version 2.14.0
|
|
249
|
+
def iso
|
|
250
|
+
parse('drone.iso')
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
##
|
|
254
|
+
# Returns max camera resolution in MP"
|
|
255
|
+
#
|
|
256
|
+
# @return [String]
|
|
257
|
+
#
|
|
258
|
+
# @example
|
|
259
|
+
# Faker::Drone.max_resolution #=> "48MP"
|
|
260
|
+
#
|
|
261
|
+
# @faker.version 2.14.0
|
|
262
|
+
def max_resolution
|
|
263
|
+
parse('drone.max_resolution')
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
##
|
|
267
|
+
# Returns photo format for drone
|
|
268
|
+
#
|
|
269
|
+
# @return [String]
|
|
270
|
+
#
|
|
271
|
+
# @example
|
|
272
|
+
# Faker::Drone.photo_format #=> "JPEG"
|
|
273
|
+
#
|
|
274
|
+
# @faker.version 2.14.0
|
|
275
|
+
def photo_format
|
|
276
|
+
parse('drone.photo_format')
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
##
|
|
280
|
+
# Returns video format
|
|
281
|
+
#
|
|
282
|
+
# @return [String]
|
|
283
|
+
#
|
|
284
|
+
# @example
|
|
285
|
+
# Faker::Drone.video_format #=> "MP4"
|
|
286
|
+
#
|
|
287
|
+
# @faker.version 2.14.0
|
|
288
|
+
def video_format
|
|
289
|
+
parse('drone.video_format')
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
##
|
|
293
|
+
# Returns max and min shutter speed for camera
|
|
294
|
+
#
|
|
295
|
+
# @return [String]
|
|
296
|
+
#
|
|
297
|
+
# @example
|
|
298
|
+
# Faker::Drone.shutter_speed_range #=> "8-1/8000s"
|
|
299
|
+
#
|
|
300
|
+
# @faker.version 2.14.0
|
|
301
|
+
def shutter_speed_range
|
|
302
|
+
"#{fetch('drone.max_shutter_speed')}-#{fetch('drone.min_shutter_speed')}#{fetch('drone.shutter_speed_units')}"
|
|
303
|
+
end
|
|
304
|
+
|
|
305
|
+
##
|
|
306
|
+
# Returns max shutter speed for camera
|
|
307
|
+
#
|
|
308
|
+
# @return [String]
|
|
309
|
+
#
|
|
310
|
+
# @example
|
|
311
|
+
# Faker::Drone.max_shutter_speed #=> "60s"
|
|
312
|
+
#
|
|
313
|
+
# @faker.version 2.14.0
|
|
314
|
+
def max_shutter_speed
|
|
315
|
+
"#{fetch('drone.max_shutter_speed')}#{fetch('drone.shutter_speed_units')}"
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
##
|
|
319
|
+
# Returns min shutter speed for camera
|
|
320
|
+
#
|
|
321
|
+
# @return [String]
|
|
322
|
+
#
|
|
323
|
+
# @example
|
|
324
|
+
# Faker::Drone.min_shutter_speed #=> "1/8000s"
|
|
325
|
+
#
|
|
326
|
+
# @faker.version 2.14.0
|
|
327
|
+
def min_shutter_speed
|
|
328
|
+
"#{fetch('drone.min_shutter_speed')}#{fetch('drone.shutter_speed_units')}"
|
|
329
|
+
end
|
|
330
|
+
end
|
|
331
|
+
end
|
|
332
|
+
end
|