faker 2.11.0 → 3.4.2
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 +1131 -19
- data/README.md +249 -105
- data/lib/faker/blockchain/aeternity.rb +5 -5
- data/lib/faker/blockchain/bitcoin.rb +2 -2
- data/lib/faker/blockchain/ethereum.rb +1 -1
- data/lib/faker/blockchain/tezos.rb +31 -3
- data/lib/faker/books/dune.rb +17 -12
- data/lib/faker/books/lovecraft.rb +16 -44
- data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
- data/lib/faker/creature/bird.rb +203 -0
- data/lib/faker/default/address.rb +42 -32
- data/lib/faker/default/adjective.rb +35 -0
- data/lib/faker/default/alphanumeric.rb +2 -8
- data/lib/faker/default/app.rb +1 -10
- data/lib/faker/default/avatar.rb +1 -12
- data/lib/faker/default/bank.rb +104 -19
- data/lib/faker/default/barcode.rb +165 -0
- data/lib/faker/default/beer.rb +3 -3
- data/lib/faker/default/blood.rb +48 -0
- data/lib/faker/default/boolean.rb +1 -4
- data/lib/faker/default/business.rb +1 -1
- data/lib/faker/default/camera.rb +46 -0
- data/lib/faker/default/cannabis.rb +10 -0
- data/lib/faker/default/chile_rut.rb +62 -18
- data/lib/faker/default/chuck_norris.rb +1 -0
- data/lib/faker/default/code.rb +162 -52
- data/lib/faker/default/color.rb +77 -6
- data/lib/faker/default/commerce.rb +105 -28
- data/lib/faker/default/company.rb +210 -28
- data/lib/faker/default/compass.rb +135 -0
- data/lib/faker/default/computer.rb +63 -0
- data/lib/faker/default/construction.rb +54 -0
- data/lib/faker/default/cosmere.rb +90 -0
- data/lib/faker/default/crypto.rb +26 -4
- data/lib/faker/default/crypto_coin.rb +48 -15
- data/lib/faker/default/date.rb +81 -54
- data/lib/faker/default/demographic.rb +1 -5
- data/lib/faker/default/driving_licence.rb +85 -18
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/default/educator.rb +13 -0
- data/lib/faker/default/emotion.rb +33 -0
- data/lib/faker/default/file.rb +53 -21
- data/lib/faker/default/finance.rb +75 -7
- data/lib/faker/default/food.rb +28 -2
- data/lib/faker/default/gender.rb +1 -1
- data/lib/faker/default/hipster.rb +108 -51
- data/lib/faker/default/hobby.rb +22 -0
- data/lib/faker/default/html.rb +230 -0
- data/lib/faker/default/id_number.rb +251 -17
- data/lib/faker/default/internet.rb +361 -113
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +37 -23
- data/lib/faker/default/json.rb +63 -25
- data/lib/faker/default/lorem.rb +177 -75
- data/lib/faker/default/lorem_flickr.rb +69 -37
- data/lib/faker/default/markdown.rb +97 -11
- data/lib/faker/default/marketing.rb +1 -1
- data/lib/faker/default/measurement.rb +101 -42
- data/lib/faker/default/military.rb +26 -0
- data/lib/faker/default/mountain.rb +33 -0
- data/lib/faker/default/name.rb +99 -5
- data/lib/faker/default/nation.rb +0 -3
- data/lib/faker/default/{nhs.rb → national_health_service.rb} +26 -6
- data/lib/faker/default/number.rb +39 -69
- data/lib/faker/default/omniauth.rb +115 -57
- data/lib/faker/default/phone_number.rb +112 -14
- data/lib/faker/default/placeholdit.rb +23 -12
- data/lib/faker/default/relationship.rb +2 -6
- data/lib/faker/default/religion.rb +6 -0
- data/lib/faker/default/science.rb +108 -0
- data/lib/faker/default/slack_emoji.rb +81 -0
- data/lib/faker/default/source.rb +3 -16
- data/lib/faker/default/south_africa.rb +93 -3
- data/lib/faker/default/space.rb +1 -1
- data/lib/faker/default/string.rb +18 -8
- data/lib/faker/default/stripe.rb +68 -23
- data/lib/faker/default/tea.rb +41 -0
- data/lib/faker/default/theater.rb +52 -0
- data/lib/faker/default/time.rb +4 -34
- data/lib/faker/default/twitter.rb +42 -23
- data/lib/faker/default/types.rb +92 -34
- data/lib/faker/default/university.rb +45 -0
- data/lib/faker/default/vehicle.rb +227 -57
- data/lib/faker/default/verb.rb +45 -0
- data/lib/faker/default/vulnerability_identifier.rb +23 -0
- data/lib/faker/default/world_cup.rb +6 -15
- data/lib/faker/fantasy/tolkien.rb +67 -0
- data/lib/faker/games/clash_of_clans.rb +48 -0
- data/lib/faker/games/control.rb +113 -0
- data/lib/faker/games/dnd.rb +178 -0
- data/lib/faker/games/dota.rb +14 -5
- data/lib/faker/games/elder_scrolls.rb +26 -0
- data/lib/faker/games/final_fantasy_xiv.rb +73 -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/myst.rb +1 -1
- data/lib/faker/games/street_fighter.rb +61 -0
- data/lib/faker/games/super_mario.rb +48 -0
- data/lib/faker/games/tarkov.rb +205 -0
- data/lib/faker/games/touhou.rb +75 -0
- data/lib/faker/games/warhammer_fantasy.rb +74 -0
- data/lib/faker/games/witcher.rb +39 -0
- data/lib/faker/games/world_of_warcraft.rb +26 -1
- data/lib/faker/japanese_media/conan.rb +48 -0
- data/lib/faker/japanese_media/cowboy_bebop.rb +61 -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/fullmetal_alchemist_brotherhood.rb +51 -0
- data/lib/faker/japanese_media/kamen_rider.rb +102 -0
- data/lib/faker/japanese_media/naruto.rb +61 -0
- data/lib/faker/japanese_media/one_piece.rb +1 -1
- data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
- data/lib/faker/locations/australia.rb +52 -0
- data/lib/faker/movies/avatar.rb +49 -0
- data/lib/faker/movies/departed.rb +49 -0
- data/lib/faker/movies/hackers.rb +48 -0
- 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/star_wars.rb +75 -7
- data/lib/faker/movies/the_room.rb +63 -0
- data/lib/faker/movies/tron.rb +161 -0
- data/lib/faker/music/hiphop.rb +48 -0
- data/lib/faker/music/music.rb +12 -0
- data/lib/faker/music/opera.rb +237 -1
- data/lib/faker/music/pearl_jam.rb +50 -0
- data/lib/faker/music/phish.rb +27 -1
- 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/smashing_pumpkins.rb +64 -0
- data/lib/faker/quotes/quote.rb +93 -1
- data/lib/faker/quotes/rajnikanth.rb +1 -0
- data/lib/faker/quotes/shakespeare.rb +70 -0
- data/lib/faker/religion/bible.rb +50 -0
- data/lib/faker/sports/chess.rb +90 -0
- data/lib/faker/sports/mountaineering.rb +22 -0
- data/lib/faker/sports/sport.rb +116 -0
- data/lib/faker/sports/volleyball.rb +74 -0
- data/lib/faker/travel/airport.rb +43 -0
- data/lib/faker/travel/train_station.rb +54 -0
- data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +13 -0
- data/lib/faker/tv_shows/archer.rb +51 -0
- data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
- data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -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/michael_scott.rb +0 -3
- data/lib/faker/tv_shows/simpsons.rb +14 -0
- data/lib/faker/tv_shows/south_park.rb +15 -0
- data/lib/faker/tv_shows/spongebob.rb +50 -0
- data/lib/faker/tv_shows/suits.rb +37 -0
- data/lib/faker/tv_shows/supernatural.rb +48 -0
- data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +17 -4
- data/lib/faker/tv_shows/the_office.rb +37 -0
- data/lib/faker/version.rb +2 -2
- data/lib/faker.rb +51 -87
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/char.rb +22 -27
- data/lib/helpers/deprecator.rb +53 -0
- data/lib/helpers/positional_generator.rb +480 -0
- data/lib/helpers/unique_generator.rb +13 -13
- data/lib/locales/README.md +18 -2
- data/lib/locales/ar.yml +6 -1
- data/lib/locales/bg.yml +1 -2
- data/lib/locales/da-DK.yml +529 -35
- data/lib/locales/de-AT.yml +3487 -25
- data/lib/locales/de-CH.yml +6020 -9
- data/lib/locales/de.yml +7185 -97
- data/lib/locales/ee.yml +0 -1
- data/lib/locales/en/address.yml +1828 -562
- data/lib/locales/en/adjective.yml +179 -0
- data/lib/locales/en/airport.yml +381 -0
- data/lib/locales/en/animal.yml +1 -1
- data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
- data/lib/locales/en/archer.yml +75 -0
- data/lib/locales/en/australia.yml +108 -0
- data/lib/locales/en/avatar.yml +31 -0
- data/lib/locales/en/bank.yml +2 -2
- data/lib/locales/en/barcode.yml +24 -0
- data/lib/locales/en/bible.yml +90 -0
- data/lib/locales/en/big_bang_theory.yml +38 -0
- data/lib/locales/en/bird.yml +1281 -0
- data/lib/locales/en/blood.yml +13 -0
- data/lib/locales/en/book.yml +487 -3
- data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
- data/lib/locales/en/buffy.yml +1 -1
- data/lib/locales/en/camera.yml +611 -0
- data/lib/locales/en/cat.yml +1 -1
- data/lib/locales/en/chess.yml +103 -0
- data/lib/locales/en/clash_of_clan.yml +101 -0
- data/lib/locales/en/coffee.yml +1 -1
- data/lib/locales/en/commerce.yml +17 -0
- data/lib/locales/en/community.yml +17 -17
- data/lib/locales/en/company.yml +3 -2
- data/lib/locales/en/computer.yml +55 -0
- data/lib/locales/en/conan.yml +171 -0
- data/lib/locales/en/control.yml +247 -0
- data/lib/locales/en/cowboy_bebop.yml +163 -0
- data/lib/locales/en/demographic.yml +218 -5
- data/lib/locales/en/departed.yml +50 -0
- data/lib/locales/en/device.yml +112 -4
- data/lib/locales/en/dnd.yml +636 -0
- data/lib/locales/en/dog.yml +262 -7
- data/lib/locales/en/doraemon.yml +286 -0
- data/lib/locales/en/dota.yml +704 -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 +270 -131
- data/lib/locales/en/educator.yml +6 -0
- data/lib/locales/en/elder_scrolls.yml +583 -9
- data/lib/locales/en/emotion.yml +480 -0
- data/lib/locales/en/fallout.yml +311 -133
- data/lib/locales/en/file.yml +9 -1
- data/lib/locales/en/final_fantasy_xiv.yml +754 -0
- data/lib/locales/en/final_space.yml +37 -0
- data/lib/locales/en/finance.yml +80 -4
- data/lib/locales/en/food.yml +1067 -10
- data/lib/locales/en/football.yml +3 -3
- data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
- data/lib/locales/en/fullmetal_alchemist_brotherhood.yml +78 -0
- data/lib/locales/en/futurama.yml +344 -0
- data/lib/locales/en/game.yml +11 -0
- data/lib/locales/en/hackers.yml +53 -0
- data/lib/locales/en/half_life.yml +84 -3
- data/lib/locales/en/harry_potter.yml +1 -1
- data/lib/locales/en/heroes.yml +408 -3
- data/lib/locales/en/heroes_of_the_storm.yml +131 -4
- data/lib/locales/en/hobby.yml +171 -0
- data/lib/locales/en/horse.yml +2 -2
- data/lib/locales/en/house.yml +1 -1
- data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
- data/lib/locales/en/id_number.yml +1 -1
- data/lib/locales/en/internet.yml +136 -3
- data/lib/locales/en/jack_handey.yml +54 -0
- data/lib/locales/en/kamen_rider.yml +452 -0
- data/lib/locales/en/kpop.yml +7 -7
- data/lib/locales/en/league_of_legends.yml +285 -6
- data/lib/locales/en/lebowski.yml +1 -1
- data/lib/locales/en/lovecraft.yml +76 -6
- data/lib/locales/en/military.yml +179 -5
- data/lib/locales/en/minecraft.yml +663 -0
- data/lib/locales/en/mitch_hedberg.yml +46 -0
- data/lib/locales/en/mountain.yml +171 -0
- data/lib/locales/en/mountaineering.yml +14 -0
- data/lib/locales/en/movie.yml +194 -2
- data/lib/locales/en/music.yml +461 -29
- data/lib/locales/en/myst.yml +87 -31
- data/lib/locales/en/name.yml +5 -4
- data/lib/locales/en/naruto.yml +230 -0
- data/lib/locales/en/one_piece.yml +2 -2
- data/lib/locales/en/opera.yml +169 -1
- data/lib/locales/en/overwatch.yml +2648 -2622
- data/lib/locales/en/pearl_jam.yml +213 -0
- data/lib/locales/en/phish.yml +392 -1
- data/lib/locales/en/phone_number.yml +78 -3
- 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/rush.yml +32 -0
- data/lib/locales/en/science.yml +481 -3
- data/lib/locales/en/shakespeare.yml +21 -24
- data/lib/locales/en/simpsons.yml +668 -0
- data/lib/locales/en/smashing_pumpkins.yml +382 -0
- data/lib/locales/en/source.yml +35 -0
- data/lib/locales/en/south_park.yml +360 -2
- data/lib/locales/en/space.yml +1 -1
- data/lib/locales/en/spongebob.yml +489 -0
- data/lib/locales/en/sport.yml +130 -0
- data/lib/locales/en/star_trek.yml +1 -1
- data/lib/locales/en/star_wars.yml +568 -220
- data/lib/locales/en/stranger_thing.yml +1 -1
- data/lib/locales/en/street_fighter.yml +1524 -0
- data/lib/locales/en/studio_ghibli.yml +107 -0
- data/lib/locales/en/suits.yml +45 -0
- data/lib/locales/en/super_mario.yml +58 -0
- data/lib/locales/en/super_smash_bros.yml +23 -6
- data/lib/locales/en/supernatural.yml +141 -0
- data/lib/locales/en/tarkov.yml +593 -0
- data/lib/locales/en/tea.yml +172 -0
- data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
- data/lib/locales/en/the_office.yml +86 -0
- data/lib/locales/en/the_room.yml +68 -0
- data/lib/locales/en/theater.yml +597 -0
- data/lib/locales/en/tolkien.yml +2453 -0
- data/lib/locales/en/touhou.yml +839 -0
- data/lib/locales/en/train_station.yml +280 -0
- data/lib/locales/en/tron.yml +227 -0
- data/lib/locales/en/vehicle.yml +2809 -75
- data/lib/locales/en/volleyball.yml +501 -0
- data/lib/locales/en/warhammer_fantasy.yml +582 -0
- data/lib/locales/en/witcher.yml +426 -7
- data/lib/locales/en/world_of_warcraft.yml +122 -4
- data/lib/locales/en/zelda.yml +962 -4
- data/lib/locales/en-AU.yml +728 -17
- data/lib/locales/en-CA.yml +373 -16
- data/lib/locales/en-GB.yml +116 -8
- data/lib/locales/en-IND.yml +1259 -16
- data/lib/locales/en-KE.yml +212 -0
- data/lib/locales/en-MS.yml +364 -16
- data/lib/locales/en-NEP.yml +212 -35
- data/lib/locales/en-NG.yml +1 -0
- data/lib/locales/en-NZ.yml +1153 -121
- data/lib/locales/en-PAK.yml +369 -9
- data/lib/locales/en-SG.yml +581 -15
- data/lib/locales/en-UG.yml +1 -0
- data/lib/locales/en-US.yml +6937 -71
- data/lib/locales/en-ZA.yml +1 -1
- data/lib/locales/en-au-ocker.yml +266 -21
- data/lib/locales/en.yml +0 -3
- data/lib/locales/es-AR.yml +4570 -0
- data/lib/locales/es-MX.yml +1 -2
- data/lib/locales/es.yml +58 -3
- data/lib/locales/fi-FI.yml +4 -2
- data/lib/locales/fr/address.yml +20 -0
- data/lib/locales/fr/adjective.yml +266 -0
- data/lib/locales/fr/ancient.yml +141 -0
- data/lib/locales/fr/animal.yml +5 -0
- data/lib/locales/fr/appliance.yml +4 -0
- data/lib/locales/fr/book.yml +7 -0
- data/lib/locales/fr/color.yml +4 -0
- data/lib/locales/fr/company.yml +17 -0
- data/lib/locales/fr/compass.yml +23 -0
- data/lib/locales/fr/demographic.yml +4 -0
- data/lib/locales/fr/gender.yml +6 -0
- data/lib/locales/fr/internet.yml +4 -0
- data/lib/locales/fr/lorem.yml +5 -0
- data/lib/locales/fr/measurement.yml +7 -0
- data/lib/locales/fr/name.yml +22 -0
- data/lib/locales/fr/phone_number.yml +7 -0
- data/lib/locales/fr/pokemon.yml +7 -0
- data/lib/locales/fr-CA.yml +2748 -43
- data/lib/locales/fr-CH.yml +3 -4
- data/lib/locales/fr.yml +2 -112
- data/lib/locales/hy.yml +3624 -119
- data/lib/locales/id.yml +839 -10
- data/lib/locales/it.yml +1304 -31
- data/lib/locales/ja/README.md +13 -0
- data/lib/locales/ja/address.yml +120539 -0
- data/lib/locales/ja/adjective.yml +148 -0
- data/lib/locales/ja/ancient.yml +4 -0
- data/lib/locales/ja/animal.yml +5 -0
- data/lib/locales/ja/bank.yml +4 -0
- data/lib/locales/ja/book.yml +7 -0
- data/lib/locales/ja/cat.yml +5 -0
- data/lib/locales/ja/coffee.yml +4 -0
- data/lib/locales/ja/color.yml +4 -0
- data/lib/locales/ja/commerce.yml +11 -0
- data/lib/locales/ja/company.yml +8 -0
- data/lib/locales/ja/dog.yml +6 -0
- data/lib/locales/ja/emotion.yml +51 -0
- data/lib/locales/ja/food.yml +4 -0
- data/lib/locales/ja/football.yml +115 -0
- data/lib/locales/ja/gender.yml +4 -0
- data/lib/locales/ja/lorem.yml +9 -0
- data/lib/locales/ja/name.yml +13 -0
- data/lib/locales/ja/naruto.yml +230 -0
- data/lib/locales/ja/overwatch.yml +5 -0
- data/lib/locales/ja/phone_number.yml +7 -0
- data/lib/locales/ja/pokemon.yml +7 -0
- data/lib/locales/ja/relationship.yml +10 -0
- data/lib/locales/ja/restaurant.yml +11 -0
- data/lib/locales/ja/space.yml +5 -0
- data/lib/locales/ja/sport.yml +130 -0
- data/lib/locales/ja/studio_ghibli.yml +112 -0
- data/lib/locales/ja/subscription.yml +8 -0
- data/lib/locales/ja/super_mario.yml +9 -0
- data/lib/locales/ja/super_smash_bros.yml +8 -0
- data/lib/locales/ja/touhou.yml +466 -0
- data/lib/locales/ja/university.yml +9 -0
- data/lib/locales/ja/zelda.yml +5 -0
- data/lib/locales/ko.yml +1450 -17
- data/lib/locales/lt.yml +315 -0
- data/lib/locales/lv.yml +1 -2
- data/lib/locales/mi-NZ.yml +283 -0
- data/lib/locales/nb-NO.yml +518 -27
- data/lib/locales/nl.yml +1 -1
- data/lib/locales/pl.yml +1 -2
- data/lib/locales/pt-BR.yml +8157 -659
- data/lib/locales/pt.yml +844 -43
- data/lib/locales/ru.yml +1355 -30
- data/lib/locales/sk.yml +4410 -41
- data/lib/locales/sv.yml +100 -0
- data/lib/locales/th.yml +76 -76
- data/lib/locales/tr.yml +1 -2
- data/lib/locales/uk.yml +1810 -44
- data/lib/locales/vi.yml +1 -0
- data/lib/locales/zh-CN/bank.yml +17 -0
- data/lib/locales/zh-CN.yml +1 -0
- data/lib/locales/zh-TW.yml +1 -0
- metadata +192 -127
- data/History.md +0 -176
- data/lib/faker/default/fillmurray.rb +0 -45
- data/lib/faker/default/lorem_pixel.rb +0 -47
- data/lib/locales/en/hobbit.yml +0 -19
- data/lib/locales/en/lord_of_the_rings.yml +0 -6
- data/lib/locales/ja.yml +0 -101
data/lib/faker/default/date.rb
CHANGED
|
@@ -2,57 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
module Faker
|
|
4
4
|
class Date < Base
|
|
5
|
+
DAYS_OF_WEEK = %i[sunday monday tuesday wednesday thursday friday saturday].freeze
|
|
6
|
+
|
|
5
7
|
class << self
|
|
6
8
|
##
|
|
7
9
|
# Produce a random date between two dates.
|
|
8
10
|
#
|
|
9
|
-
# @param from [Date] The start of the usable date range.
|
|
10
|
-
# @param to [Date] The end of the usable date range.
|
|
11
|
+
# @param from [Date, String] The start of the usable date range.
|
|
12
|
+
# @param to [Date, String] The end of the usable date range.
|
|
11
13
|
# @return [Date]
|
|
12
14
|
#
|
|
13
|
-
# @example
|
|
14
|
-
# Faker::Date.between(from:
|
|
15
|
-
#
|
|
15
|
+
# @example if used with or without Rails (Active Support)
|
|
16
|
+
# Faker::Date.between(from: '2014-09-23', to: '2014-09-25') #=> #<Date: 2014-09-24>
|
|
17
|
+
#
|
|
18
|
+
# @example if used with Rails (Active Support)
|
|
19
|
+
# Faker::Date.between(from: 2.days.ago, to: Date.today) #=> #<Date: 2014-09-24>
|
|
16
20
|
#
|
|
17
21
|
# @faker.version 1.0.0
|
|
18
|
-
def between(
|
|
19
|
-
warn_for_deprecated_arguments do |keywords|
|
|
20
|
-
keywords << :from if legacy_from != NOT_GIVEN
|
|
21
|
-
keywords << :to if legacy_to != NOT_GIVEN
|
|
22
|
-
end
|
|
23
|
-
|
|
22
|
+
def between(from:, to:)
|
|
24
23
|
from = get_date_object(from)
|
|
25
24
|
to = get_date_object(to)
|
|
26
25
|
|
|
27
26
|
Faker::Base.rand_in_range(from, to)
|
|
28
27
|
end
|
|
29
28
|
|
|
30
|
-
# rubocop:disable Metrics/ParameterLists
|
|
31
|
-
|
|
32
29
|
##
|
|
33
30
|
# Produce a random date between two dates.
|
|
34
31
|
#
|
|
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.
|
|
32
|
+
# @param from [Date, String] The start of the usable date range.
|
|
33
|
+
# @param to [Date, String] The end of the usable date range.
|
|
34
|
+
# @param excepted [Date, String] A date to exclude.
|
|
38
35
|
# @return [Date]
|
|
39
36
|
#
|
|
40
|
-
# @example
|
|
41
|
-
# Faker::Date.between_except(from:
|
|
42
|
-
#
|
|
37
|
+
# @example if used with or without Rails (Active Support)
|
|
38
|
+
# Faker::Date.between_except(from: '2014-09-23', to: '2015-09-25', excepted: '2015-01-24') #=> #<Date: 2014-10-03>
|
|
39
|
+
#
|
|
40
|
+
# @example if used with Rails (Active Support)
|
|
41
|
+
# Faker::Date.between_except(from: 1.year.ago, to: 1.year.from_now, excepted: Date.today) #=> #<Date: 2014-10-03>
|
|
43
42
|
#
|
|
44
43
|
# @faker.version 1.6.2
|
|
45
|
-
def between_except(
|
|
46
|
-
warn_for_deprecated_arguments do |keywords|
|
|
47
|
-
keywords << :from if legacy_from != NOT_GIVEN
|
|
48
|
-
end
|
|
49
|
-
warn_for_deprecated_arguments do |keywords|
|
|
50
|
-
keywords << :to if legacy_to != NOT_GIVEN
|
|
51
|
-
end
|
|
52
|
-
warn_for_deprecated_arguments do |keywords|
|
|
53
|
-
keywords << :excepted if legacy_excepted != NOT_GIVEN
|
|
54
|
-
end
|
|
55
|
-
|
|
44
|
+
def between_except(from:, to:, excepted:)
|
|
56
45
|
raise ArgumentError, 'From date, to date and excepted date must not be the same' if from == to && to == excepted
|
|
57
46
|
|
|
58
47
|
excepted = get_date_object(excepted)
|
|
@@ -62,27 +51,30 @@ module Faker
|
|
|
62
51
|
break date.to_date if date != excepted
|
|
63
52
|
end
|
|
64
53
|
end
|
|
65
|
-
# rubocop:enable Metrics/ParameterLists
|
|
66
54
|
|
|
67
55
|
##
|
|
68
56
|
# Produce a random date in the future (up to N days).
|
|
69
57
|
#
|
|
58
|
+
# @param from [Integer] The start of the usable forward date range.
|
|
70
59
|
# @param days [Integer] The maximum number of days to go into the future.
|
|
71
60
|
# @return [Date]
|
|
72
61
|
#
|
|
73
|
-
# @example
|
|
62
|
+
# @example if used with or without Rails (Active Support)
|
|
74
63
|
# Faker::Date.forward(days: 23) #=> #<Date: 2014-10-03>
|
|
75
64
|
#
|
|
65
|
+
# @example if used with Rails (Active Support)
|
|
66
|
+
# Faker::Date.forward(from: Date.current, days: 17) #=> #<Date: 2022-06-22>
|
|
67
|
+
#
|
|
68
|
+
# @example if used with or without Rails (Active Support)
|
|
69
|
+
# Faker::Date.forward(from: '2022-06-03', days: 10) #=> #<Date: 2022-10-13>
|
|
70
|
+
#
|
|
76
71
|
# @faker.version 1.0.0
|
|
77
|
-
def forward(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
from = ::Date.today + 1
|
|
83
|
-
to = ::Date.today + days
|
|
72
|
+
def forward(from: ::Date.today, days: 365)
|
|
73
|
+
start_date = get_date_object(from)
|
|
74
|
+
since = start_date + 1
|
|
75
|
+
to = start_date + days
|
|
84
76
|
|
|
85
|
-
between(from:
|
|
77
|
+
between(from: since, to: to).to_date
|
|
86
78
|
end
|
|
87
79
|
|
|
88
80
|
##
|
|
@@ -95,11 +87,7 @@ module Faker
|
|
|
95
87
|
# Faker::Date.backward(days: 14) #=> #<Date: 2019-09-12>
|
|
96
88
|
#
|
|
97
89
|
# @faker.version 1.0.0
|
|
98
|
-
def backward(
|
|
99
|
-
warn_for_deprecated_arguments do |keywords|
|
|
100
|
-
keywords << :days if legacy_days != NOT_GIVEN
|
|
101
|
-
end
|
|
102
|
-
|
|
90
|
+
def backward(days: 365)
|
|
103
91
|
from = ::Date.today - days
|
|
104
92
|
to = ::Date.today - 1
|
|
105
93
|
|
|
@@ -117,14 +105,7 @@ module Faker
|
|
|
117
105
|
# Faker::Date.birthday(min_age: 18, max_age: 65) #=> #<Date: 1986-03-28>
|
|
118
106
|
#
|
|
119
107
|
# @faker.version 1.4.3
|
|
120
|
-
def birthday(
|
|
121
|
-
warn_for_deprecated_arguments do |keywords|
|
|
122
|
-
keywords << :min_age if legacy_min_age != NOT_GIVEN
|
|
123
|
-
end
|
|
124
|
-
warn_for_deprecated_arguments do |keywords|
|
|
125
|
-
keywords << :max_age if legacy_max_age != NOT_GIVEN
|
|
126
|
-
end
|
|
127
|
-
|
|
108
|
+
def birthday(min_age: 18, max_age: 65)
|
|
128
109
|
t = ::Date.today
|
|
129
110
|
|
|
130
111
|
from = birthday_date(t, max_age)
|
|
@@ -149,7 +130,7 @@ module Faker
|
|
|
149
130
|
# @example
|
|
150
131
|
# Faker::Date.in_date_period(month: 2) #=> #<Date: 2019-02-26>
|
|
151
132
|
#
|
|
152
|
-
# @faker.version
|
|
133
|
+
# @faker.version 2.13.0
|
|
153
134
|
def in_date_period(month: nil, year: ::Date.today.year)
|
|
154
135
|
from = ::Date.new(year, month || 1, 1)
|
|
155
136
|
to = ::Date.new(year, month || 12, ::Date.civil(year, month || 12, -1).day)
|
|
@@ -157,6 +138,52 @@ module Faker
|
|
|
157
138
|
between(from: from, to: to).to_date
|
|
158
139
|
end
|
|
159
140
|
|
|
141
|
+
##
|
|
142
|
+
# Produce a random date at given day(s) of the week between two dates.
|
|
143
|
+
#
|
|
144
|
+
# @param day [Symbol, Array<Symbol>] # The day(s) of the week. See {DAYS_OF_WEEK}.
|
|
145
|
+
# @param from [Date, String] The start of the usable date range.
|
|
146
|
+
# @param to [Date, String] The end of the usable date range.
|
|
147
|
+
# @return [Date]
|
|
148
|
+
#
|
|
149
|
+
# @example if used with or without Rails (Active Support)
|
|
150
|
+
# Faker::Date.on_day_of_week_between(day: :tuesday, from: '2023-01-01', to: '2023-02-01') #=> #<Date: 2032-01-10>
|
|
151
|
+
#
|
|
152
|
+
# @example if used with Rails (Active Support)
|
|
153
|
+
# Faker::Date.on_day_of_week_between(day: [:saturday, :sunday], from: 1.month.ago, to: Date.today) #=> #<Date: 2014-09-24>
|
|
154
|
+
#
|
|
155
|
+
# @faker.version next
|
|
156
|
+
def on_day_of_week_between(day:, from:, to:)
|
|
157
|
+
days = [day].flatten
|
|
158
|
+
raise ArgumentError, 'Day of week cannot be empty' if days.empty?
|
|
159
|
+
|
|
160
|
+
# Convert given days of the week to numbers used by `Date#wday` method
|
|
161
|
+
numeric_weekdays = days.map do |d|
|
|
162
|
+
DAYS_OF_WEEK.index(d.to_sym.downcase) || raise(ArgumentError, "#{d} is not a valid day of the week")
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
from = get_date_object(from)
|
|
166
|
+
to = get_date_object(to)
|
|
167
|
+
date = Faker::Base.rand_in_range(from, to)
|
|
168
|
+
|
|
169
|
+
# If the initial date is not on one of the wanted days of the week...
|
|
170
|
+
unless numeric_weekdays.include? date.wday
|
|
171
|
+
# ...pick a date nearby that is on one of the wanted days of the week instead
|
|
172
|
+
date += sample(numeric_weekdays) - date.wday
|
|
173
|
+
|
|
174
|
+
# Move date 1 week earlier or later if the adjusted date is now outside the date range
|
|
175
|
+
date += 7 if date < from
|
|
176
|
+
date -= 7 if date > to
|
|
177
|
+
|
|
178
|
+
if date > to || date < from
|
|
179
|
+
raise ArgumentError,
|
|
180
|
+
"There is no #{DAYS_OF_WEEK[date.wday].capitalize} between #{from} and #{to}. Increase the from/to date range or choose a different day of the week."
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
date
|
|
185
|
+
end
|
|
186
|
+
|
|
160
187
|
private
|
|
161
188
|
|
|
162
189
|
def birthday_date(date, age)
|
|
@@ -80,11 +80,7 @@ module Faker
|
|
|
80
80
|
# Faker::Demographic.height(unit: :imperial) #=> "6 ft, 2 in"
|
|
81
81
|
#
|
|
82
82
|
# @faker.version 1.7.3
|
|
83
|
-
def height(
|
|
84
|
-
warn_for_deprecated_arguments do |keywords|
|
|
85
|
-
keywords << :unit if legacy_unit != NOT_GIVEN
|
|
86
|
-
end
|
|
87
|
-
|
|
83
|
+
def height(unit: :metric)
|
|
88
84
|
case unit
|
|
89
85
|
when :imperial
|
|
90
86
|
inches = rand_in_range(57, 86)
|
|
@@ -6,16 +6,24 @@ module Faker
|
|
|
6
6
|
NI_CHANCE = 0.03 # NI Pop is about 3% of total UK population
|
|
7
7
|
|
|
8
8
|
class << self
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
##
|
|
10
|
+
# Produces a random British driving licence number.
|
|
11
|
+
#
|
|
12
|
+
# @param last_name [String] The last name of the driving licence's owner.
|
|
13
|
+
# @param initials [String] The initials of the driving licence's owner.
|
|
14
|
+
# @param gender [String] The gender of the driving licence's owner.
|
|
15
|
+
# @param date_of_birth [String] The date of birth of the driving licence's owner.
|
|
16
|
+
# @return [String]
|
|
17
|
+
#
|
|
18
|
+
# @example
|
|
19
|
+
# Faker::DrivingLicence.british_driving_licence #=> "MCDER712081VF7EK"
|
|
20
|
+
# Faker::DrivingLicence.british_driving_licence(last_name: "O'Carroll",
|
|
21
|
+
# initials: "J",
|
|
22
|
+
# gender: :female,
|
|
23
|
+
# date_of_birth: Date.parse("1986-10-24")) #=> "OCARR815246J91HT"
|
|
24
|
+
#
|
|
25
|
+
# @faker.version 1.9.2
|
|
26
|
+
def british_driving_licence(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))
|
|
19
27
|
[
|
|
20
28
|
gb_licence_padding(last_name, 5),
|
|
21
29
|
gb_licence_year(date_of_birth, gender),
|
|
@@ -24,10 +32,35 @@ module Faker
|
|
|
24
32
|
].join
|
|
25
33
|
end
|
|
26
34
|
|
|
35
|
+
##
|
|
36
|
+
# Produces a random Northern Irish licence number.
|
|
37
|
+
#
|
|
38
|
+
# @return [String]
|
|
39
|
+
#
|
|
40
|
+
# @example
|
|
41
|
+
# Faker::DrivingLicence.northern_irish_driving_licence #=> "70702548"
|
|
42
|
+
#
|
|
43
|
+
# @faker.version 1.9.2
|
|
27
44
|
def northern_irish_driving_licence
|
|
28
45
|
Faker::Number.number(digits: 8).to_s
|
|
29
46
|
end
|
|
30
47
|
|
|
48
|
+
##
|
|
49
|
+
# Produces a random UK driving licence number in either GB or NI format, at a rate consistent with their relative populations
|
|
50
|
+
#
|
|
51
|
+
# @overload uk_driving_licence(last_name, initials, gender, date_of_birth)
|
|
52
|
+
# @param last_name [String] The last name of the driving licence's owner.
|
|
53
|
+
# @param initials [String] The initials of the driving licence's owner.
|
|
54
|
+
# @param gender [String] The gender of the driving licence's owner.
|
|
55
|
+
# @param date_of_birth [String] The date of birth of the driving licence's owner.
|
|
56
|
+
# @overload uk_driving_licence()
|
|
57
|
+
# @return [String]
|
|
58
|
+
#
|
|
59
|
+
# @example
|
|
60
|
+
# Faker::DrivingLicence.uk_driving_licence #=> "OCARR815246J91HT"
|
|
61
|
+
# Faker::DrivingLicence.uk_driving_licence #=> "70702548"
|
|
62
|
+
#
|
|
63
|
+
# @faker.version 1.9.2
|
|
31
64
|
def uk_driving_licence(*args)
|
|
32
65
|
if Faker::Config.random.rand < NI_CHANCE
|
|
33
66
|
northern_irish_driving_licence
|
|
@@ -36,6 +69,23 @@ module Faker
|
|
|
36
69
|
end
|
|
37
70
|
end
|
|
38
71
|
|
|
72
|
+
##
|
|
73
|
+
# Produces a random USA driving licence number by state code passed.
|
|
74
|
+
#
|
|
75
|
+
# @return [String]
|
|
76
|
+
#
|
|
77
|
+
# @example
|
|
78
|
+
# Faker::DrivingLicence.usa_driving_licence #=> "V5598249"
|
|
79
|
+
# Faker::DrivingLicence.usa_driving_licence('new mexico') #=> "270692028"
|
|
80
|
+
# Faker::DrivingLicence.usa_driving_licence('New Mexico') #=> "68178637"
|
|
81
|
+
#
|
|
82
|
+
# @faker.version 2.14.0
|
|
83
|
+
def usa_driving_licence(state = 'California')
|
|
84
|
+
bothify(fetch("driving_licence.usa.#{state.to_s.strip.downcase.gsub(' ', '_')}"))
|
|
85
|
+
rescue I18n::MissingTranslationData => _e
|
|
86
|
+
raise InvalidStatePassed, "Invalid state code passed for USA, '#{state}'"
|
|
87
|
+
end
|
|
88
|
+
|
|
39
89
|
private
|
|
40
90
|
|
|
41
91
|
def random_gender
|
|
@@ -48,18 +98,35 @@ module Faker
|
|
|
48
98
|
end
|
|
49
99
|
|
|
50
100
|
def gb_licence_year(dob, gender)
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
101
|
+
generate(:string) do |g|
|
|
102
|
+
g.computed do
|
|
103
|
+
(dob.year / 10) % 10
|
|
104
|
+
end
|
|
105
|
+
g.computed do
|
|
106
|
+
gender_marker = gender == :female ? 50 : 0
|
|
107
|
+
format('%02d', (dob.month + gender_marker))
|
|
108
|
+
end
|
|
109
|
+
g.computed do
|
|
110
|
+
format('%02d', dob.day)
|
|
111
|
+
end
|
|
112
|
+
g.computed do
|
|
113
|
+
dob.year % 10
|
|
114
|
+
end
|
|
115
|
+
end
|
|
58
116
|
end
|
|
59
117
|
|
|
60
118
|
def gb_licence_checksum
|
|
61
|
-
|
|
119
|
+
generate(:string) do |g|
|
|
120
|
+
g.int
|
|
121
|
+
g.letter(ranges: ['A'..'Z'], length: 2)
|
|
122
|
+
end
|
|
62
123
|
end
|
|
63
124
|
end
|
|
64
125
|
end
|
|
126
|
+
|
|
127
|
+
class InvalidStatePassed < StandardError
|
|
128
|
+
def initialize(msg = 'Invalid state code passed')
|
|
129
|
+
super
|
|
130
|
+
end
|
|
131
|
+
end
|
|
65
132
|
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 temperature 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
|