faker 2.4.0 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +159 -0
  3. data/README.md +3 -0
  4. data/lib/faker/default/address.rb +202 -0
  5. data/lib/faker/default/ancient.rb +36 -0
  6. data/lib/faker/default/app.rb +2 -1
  7. data/lib/faker/default/avatar.rb +2 -1
  8. data/lib/faker/default/bank.rb +13 -7
  9. data/lib/faker/default/bossa_nova.rb +18 -0
  10. data/lib/faker/default/business.rb +27 -0
  11. data/lib/faker/default/chuck_norris.rb +12 -2
  12. data/lib/faker/default/coffee.rb +45 -0
  13. data/lib/faker/default/coin.rb +18 -0
  14. data/lib/faker/default/color.rb +48 -1
  15. data/lib/faker/default/crypto.rb +27 -0
  16. data/lib/faker/default/currency.rb +27 -0
  17. data/lib/faker/default/date.rb +83 -2
  18. data/lib/faker/default/demographic.rb +57 -0
  19. data/lib/faker/default/driving_licence.rb +2 -2
  20. data/lib/faker/default/educator.rb +60 -6
  21. data/lib/faker/default/esport.rb +45 -0
  22. data/lib/faker/default/fillmurray.rb +23 -1
  23. data/lib/faker/default/food.rb +65 -1
  24. data/lib/faker/default/id_number.rb +29 -0
  25. data/lib/faker/default/internet.rb +21 -8
  26. data/lib/faker/default/kpop.rb +54 -0
  27. data/lib/faker/default/nation.rb +48 -5
  28. data/lib/faker/default/number.rb +124 -0
  29. data/lib/faker/default/relationship.rb +45 -0
  30. data/lib/faker/default/restaurant.rb +54 -2
  31. data/lib/faker/default/space.rb +127 -0
  32. data/lib/faker/default/team.rb +45 -0
  33. data/lib/faker/default/time.rb +85 -8
  34. data/lib/faker/default/world_cup.rb +50 -0
  35. data/lib/faker/games/zelda.rb +1 -1
  36. data/lib/faker/japanese_media/one_piece.rb +54 -0
  37. data/lib/faker/movies/back_to_the_future.rb +28 -0
  38. data/lib/faker/movies/ghostbusters.rb +28 -0
  39. data/lib/faker/movies/harry_potter.rb +54 -0
  40. data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +69 -0
  41. data/lib/faker/movies/lebowski.rb +27 -0
  42. data/lib/faker/movies/lord_of_the_rings.rb +28 -0
  43. data/lib/faker/movies/princess_bride.rb +19 -0
  44. data/lib/faker/movies/star_wars.rb +94 -0
  45. data/lib/faker/movies/v_for_vendetta.rb +29 -0
  46. data/lib/faker/music/umphreys_mcgee.rb +9 -0
  47. data/lib/faker/sports/basketball.rb +36 -0
  48. data/lib/faker/sports/football.rb +45 -0
  49. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +9 -0
  50. data/lib/faker/tv_shows/bojack_horseman.rb +28 -0
  51. data/lib/faker/tv_shows/buffy.rb +45 -0
  52. data/lib/faker/tv_shows/community.rb +19 -0
  53. data/lib/faker/tv_shows/dr_who.rb +78 -2
  54. data/lib/faker/tv_shows/dumb_and_dumber.rb +28 -0
  55. data/lib/faker/tv_shows/family_guy.rb +28 -0
  56. data/lib/faker/tv_shows/friends.rb +27 -0
  57. data/lib/faker/tv_shows/game_of_thrones.rb +46 -0
  58. data/lib/faker/tv_shows/hey_arnold.rb +27 -0
  59. data/lib/faker/tv_shows/how_i_met_your_mother.rb +37 -0
  60. data/lib/faker/tv_shows/michael_scott.rb +13 -0
  61. data/lib/faker/tv_shows/new_girl.rb +19 -0
  62. data/lib/faker/tv_shows/parks_and_rec.rb +18 -0
  63. data/lib/faker/tv_shows/rick_and_morty.rb +28 -0
  64. data/lib/faker/tv_shows/ru_paul.rb +18 -0
  65. data/lib/faker/tv_shows/seinfeld.rb +28 -0
  66. data/lib/faker/tv_shows/silicon_valley.rb +75 -0
  67. data/lib/faker/tv_shows/simpsons.rb +28 -0
  68. data/lib/faker/tv_shows/south_park.rb +19 -0
  69. data/lib/faker/tv_shows/star_trek.rb +36 -0
  70. data/lib/faker/tv_shows/stargate.rb +28 -0
  71. data/lib/faker/tv_shows/stranger_things.rb +19 -0
  72. data/lib/faker/tv_shows/the_expanse.rb +36 -0
  73. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +28 -0
  74. data/lib/faker/tv_shows/the_it_crowd.rb +37 -0
  75. data/lib/faker/tv_shows/the_thick_of_it.rb +28 -0
  76. data/lib/faker/tv_shows/twin_peaks.rb +28 -0
  77. data/lib/faker/tv_shows/venture_bros.rb +38 -0
  78. data/lib/faker/version.rb +1 -1
  79. data/lib/locales/en-CA.yml +1 -0
  80. data/lib/locales/en-TH.yml +360 -0
  81. data/lib/locales/en/color.yml +1 -1
  82. data/lib/locales/en/dr_who.yml +1 -1
  83. data/lib/locales/en/educator.yml +69 -6
  84. data/lib/locales/en/overwatch.yml +2617 -32
  85. data/lib/locales/en/super_smash_bros.yml +1 -0
  86. data/lib/locales/fr-CA.yml +1 -1
  87. data/lib/locales/ja.yml +6 -2
  88. data/lib/locales/pt-BR.yml +23 -2
  89. data/lib/locales/th.yml +380 -0
  90. metadata +22 -14
@@ -3,18 +3,54 @@
3
3
  module Faker
4
4
  class Ancient < Base
5
5
  class << self
6
+ ##
7
+ # Produces a god from ancient mythology.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Ancient.god #=> "Zeus"
13
+ #
14
+ # @faker.version 1.7.0
6
15
  def god
7
16
  fetch('ancient.god')
8
17
  end
9
18
 
19
+ ##
20
+ # Produces a primordial from ancient mythology.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Ancient.primordial #=> "Gaia"
26
+ #
27
+ # @faker.version 1.7.0
10
28
  def primordial
11
29
  fetch('ancient.primordial')
12
30
  end
13
31
 
32
+ ##
33
+ # Produces a titan from ancient mythology.
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Ancient.titan #=> "Atlas"
39
+ #
40
+ # @faker.version 1.7.0
14
41
  def titan
15
42
  fetch('ancient.titan')
16
43
  end
17
44
 
45
+ ##
46
+ # Produces a hero from ancient mythology.
47
+ #
48
+ # @return [String]
49
+ #
50
+ # @example
51
+ # Faker::Ancient.hero #=> "Achilles"
52
+ #
53
+ # @faker.version 1.7.0
18
54
  def hero
19
55
  fetch('ancient.hero')
20
56
  end
@@ -42,6 +42,8 @@ module Faker
42
42
  parse('app.author')
43
43
  end
44
44
 
45
+ # rubocop:disable Metrics/ParameterLists
46
+
45
47
  ##
46
48
  # Produces a String representing a semantic version identifier.
47
49
  #
@@ -60,7 +62,6 @@ module Faker
60
62
  # Faker::App.semantic_version(patch: 5..6) #=> "7.2.6"
61
63
  #
62
64
  # @faker.version 1.4.3
63
- # rubocop:disable Metrics/ParameterLists
64
65
  def semantic_version(legacy_major = NOT_GIVEN, legacy_minor = NOT_GIVEN, legacy_patch = NOT_GIVEN, major: 0..9, minor: 0..9, patch: 1..9)
65
66
  # rubocop:enable Metrics/ParameterLists
66
67
  warn_for_deprecated_arguments do |keywords|
@@ -6,6 +6,8 @@ module Faker
6
6
  # @private
7
7
  SUPPORTED_FORMATS = %w[png jpg bmp].freeze
8
8
 
9
+ # rubocop:disable Metrics/ParameterLists
10
+
9
11
  ##
10
12
  # Produces a URL for an avatar from robohash.org
11
13
  #
@@ -36,7 +38,6 @@ module Faker
36
38
  # #=> "https://robohash.org/my-own-slug.bmp?size=50x50&set=set1&bgset=bg1"
37
39
  #
38
40
  # @faker.version 1.4.3
39
- # rubocop:disable Metrics/ParameterLists
40
41
  def image(legacy_slug = NOT_GIVEN, legacy_size = NOT_GIVEN, legacy_format = NOT_GIVEN, legacy_set = NOT_GIVEN, legacy_bgset = NOT_GIVEN, slug: nil, size: '300x300', format: 'png', set: 'set1', bgset: nil)
41
42
  # rubocop:enable Metrics/ParameterLists
42
43
  warn_for_deprecated_arguments do |keywords|
@@ -58,8 +58,11 @@ module Faker
58
58
 
59
59
  def checksum(num_string)
60
60
  num_array = num_string.split('').map(&:to_i)
61
- digit = (7 * (num_array[0] + num_array[3] + num_array[6]) + 3 * (num_array[1] + num_array[4] + num_array[7]) + 9 * (num_array[2] + num_array[5])) % 10
62
- digit == num_array[8]
61
+ (
62
+ 7 * (num_array[0] + num_array[3] + num_array[6]) +
63
+ 3 * (num_array[1] + num_array[4] + num_array[7]) +
64
+ 9 * (num_array[2] + num_array[5])
65
+ ) % 10
63
66
  end
64
67
 
65
68
  def compile_routing_number
@@ -85,12 +88,15 @@ module Faker
85
88
  end
86
89
 
87
90
  def valid_routing_number
88
- for _ in 0..50
89
- micr = compile_routing_number
91
+ routing_number = compile_routing_number
92
+ checksum = checksum(routing_number)
93
+ return routing_number if valid_checksum?(routing_number, checksum)
90
94
 
91
- break if checksum(micr)
92
- end
93
- micr
95
+ routing_number[0..7] + checksum.to_s
96
+ end
97
+
98
+ def valid_checksum?(routing_number, checksum)
99
+ routing_number[8].to_i == checksum
94
100
  end
95
101
 
96
102
  def compile_fraction(routing_num)
@@ -3,10 +3,28 @@
3
3
  module Faker
4
4
  class BossaNova < Base
5
5
  class << self
6
+ ##
7
+ # Produces the name of a bossa nova artist.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::BossaNova.artist #=> "Tom Jobin"
13
+ #
14
+ # @faker.version 1.8.3
6
15
  def artist
7
16
  fetch('bossa_nova.artists')
8
17
  end
9
18
 
19
+ ##
20
+ # Produces a bossa nova song.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::BossaNova.song #=> "Chega de Saudade"
26
+ #
27
+ # @faker.version 1.8.3
10
28
  def song
11
29
  fetch('bossa_nova.songs')
12
30
  end
@@ -7,14 +7,41 @@ module Faker
7
7
  flexible :business
8
8
 
9
9
  class << self
10
+ ##
11
+ # Produces a credit card number.
12
+ #
13
+ # @return [String]
14
+ #
15
+ # @example
16
+ # Faker::Business.credit_card_number #=> "1228-1221-1221-1431"
17
+ #
18
+ # @faker.version 1.2.0
10
19
  def credit_card_number
11
20
  fetch('business.credit_card_numbers')
12
21
  end
13
22
 
23
+ ##
24
+ # Produces a credit card expiration date.
25
+ #
26
+ # @return [Date]
27
+ #
28
+ # @example
29
+ # Faker::Business.credit_card_number #=> <Date: 2015-11-11 ((2457338j,0s,0n),+0s,2299161j)>
30
+ #
31
+ # @faker.version 1.2.0
14
32
  def credit_card_expiry_date
15
33
  ::Date.today + (365 * rand(1..4))
16
34
  end
17
35
 
36
+ ##
37
+ # Produces a type of credit card.
38
+ #
39
+ # @return [String]
40
+ #
41
+ # @example
42
+ # Faker::Business.credit_card_type #=> "visa"
43
+ #
44
+ # @faker.version 1.2.0
18
45
  def credit_card_type
19
46
  fetch('business.credit_card_types')
20
47
  end
@@ -2,10 +2,20 @@
2
2
 
3
3
  module Faker
4
4
  class ChuckNorris < Base
5
- flexible :name
5
+ flexible :chuck_norris
6
6
 
7
7
  class << self
8
- # from: https://github.com/jenkinsci/chucknorris-plugin/blob/master/src/main/java/hudson/plugins/chucknorris/FactGenerator.java
8
+ # Produces a Chuck Norris Fact.
9
+ # Original list of facts:
10
+ # https://github.com/jenkinsci/chucknorris-plugin/blob/master/src/main/java/hudson/plugins/chucknorris/FactGenerator.java
11
+ #
12
+ # @return [String]
13
+ #
14
+ # @example
15
+ # Faker::ChuckNorris.fact
16
+ # #=> "Chuck Norris can solve the Towers of Hanoi in one move."
17
+ #
18
+ # @faker.version 1.6.4
9
19
  def fact
10
20
  fetch('chuck_norris.fact')
11
21
  end
@@ -5,24 +5,69 @@ module Faker
5
5
  flexible :coffee
6
6
 
7
7
  class << self
8
+ ##
9
+ # Produces a random blend name.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::Coffee.blend_name #=> "Major Java"
15
+ #
16
+ # @faker.version 1.9.0
8
17
  def blend_name
9
18
  parse('coffee.blend_name')
10
19
  end
11
20
 
21
+ ##
22
+ # Produces a random coffee origin place.
23
+ #
24
+ # @return [String]
25
+ #
26
+ # @example
27
+ # Faker::Coffee.origin #=> "Oaxaca, Mexico"
28
+ #
29
+ # @faker.version 1.9.0
12
30
  def origin
13
31
  country = fetch('coffee.country')
14
32
  region = fetch("coffee.regions.#{search_format(country)}")
15
33
  "#{region}, #{country}"
16
34
  end
17
35
 
36
+ ##
37
+ # Produces a random coffee variety.
38
+ #
39
+ # @return [String]
40
+ #
41
+ # @example
42
+ # Faker::Coffee.variety #=> "Red Bourbon"
43
+ #
44
+ # @faker.version 1.9.0
18
45
  def variety
19
46
  fetch('coffee.variety')
20
47
  end
21
48
 
49
+ ##
50
+ # Produces a string containing a random description of a coffee's taste.
51
+ #
52
+ # @return [String]
53
+ #
54
+ # @example
55
+ # Faker::Coffee.notes #=> "dull, tea-like, cantaloupe, soy sauce, marshmallow"
56
+ #
57
+ # @faker.version 1.9.0
22
58
  def notes
23
59
  parse('coffee.notes')
24
60
  end
25
61
 
62
+ ##
63
+ # Produces a random coffee taste intensity.
64
+ #
65
+ # @return [String]
66
+ #
67
+ # @example
68
+ # Faker::Coffee.intensifier #=> "mild"
69
+ #
70
+ # @faker.version 1.9.0
26
71
  def intensifier
27
72
  fetch('coffee.intensifier')
28
73
  end
@@ -3,10 +3,28 @@
3
3
  module Faker
4
4
  class Coin < Base
5
5
  class << self
6
+ ##
7
+ # Retrieves a random coin from any country.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Coin.name #=> "Brazilian Real"
13
+ #
14
+ # @faker.version 1.9.2
6
15
  def name
7
16
  fetch('currency.name')
8
17
  end
9
18
 
19
+ ##
20
+ # Retrieves a face to a flipped coin
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Coin.flip #=> "Heads"
26
+ #
27
+ # @faker.version 1.9.2
10
28
  def flip
11
29
  fetch('coin.flip')
12
30
  end
@@ -3,27 +3,74 @@
3
3
  module Faker
4
4
  class Color < Base
5
5
  class << self
6
+ ##
7
+ # Produces a hex color code.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Color.hex_color #=> "#31a785"
13
+ #
14
+ # @faker.version 1.5.0
6
15
  def hex_color
7
16
  format('#%06x', (rand * 0xffffff))
8
17
  end
9
18
 
19
+ ##
20
+ # Produces the name of a color.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Color.color_name #=> "yellow"
26
+ #
27
+ # @faker.version 1.6.2
10
28
  def color_name
11
29
  fetch('color.name')
12
30
  end
13
31
 
32
+ # @private
14
33
  def single_rgb_color
15
34
  sample((0..255).to_a)
16
35
  end
17
36
 
37
+ ##
38
+ # Produces an array of integers representing an RGB color.
39
+ #
40
+ # @return [Array(Integer, Integer, Integer)]
41
+ #
42
+ # @example
43
+ # Faker::Color.rgb_color #=> [54, 233, 67]
44
+ #
45
+ # @faker.version 1.5.0
18
46
  def rgb_color
19
47
  Array.new(3) { single_rgb_color }
20
48
  end
21
49
 
22
- # returns [hue, saturation, lightness]
50
+ ##
51
+ # Produces an array of floats representing an HSL color.
52
+ # The array is in the form of `[hue, saturation, lightness]`.
53
+ #
54
+ # @return [Array(Float, Float, Float)]
55
+ #
56
+ # @example
57
+ # Faker::Color.hsl_color #=> [69.87, 0.66, 0.3]
58
+ #
59
+ # @faker.version 1.5.0
23
60
  def hsl_color
24
61
  [sample((0..360).to_a), rand.round(2), rand.round(2)]
25
62
  end
26
63
 
64
+ ##
65
+ # Produces an array of floats representing an HSLA color.
66
+ # The array is in the form of `[hue, saturation, lightness, alpha]`.
67
+ #
68
+ # @return [Array(Float, Float, Float, Float)]
69
+ #
70
+ # @example
71
+ # Faker::Color.hsla_color #=> [154.77, 0.36, 0.9, 0.2]
72
+ #
73
+ # @faker.version 1.5.0
27
74
  def hsla_color
28
75
  hsl_color << rand.round(1)
29
76
  end
@@ -5,14 +5,41 @@ require 'digest'
5
5
  module Faker
6
6
  class Crypto < Base
7
7
  class << self
8
+ ##
9
+ # Produces an MD5 hash.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::Crypto.md5 #=> "6b5ed240042e8a65c55ddb826c3408e6"
15
+ #
16
+ # @faker.version 1.6.4
8
17
  def md5
9
18
  Digest::MD5.hexdigest(Lorem.characters)
10
19
  end
11
20
 
21
+ ##
22
+ # Produces a SHA1 hash.
23
+ #
24
+ # @return [String]
25
+ #
26
+ # @example
27
+ # Faker::Crypto.sha1 #=> "4e99e31c51eef8b2d290e709f757f92e558a503f"
28
+ #
29
+ # @faker.version 1.6.4
12
30
  def sha1
13
31
  Digest::SHA1.hexdigest(Lorem.characters)
14
32
  end
15
33
 
34
+ ##
35
+ # Produces a SHA256 hash.
36
+ #
37
+ # @return [String]
38
+ #
39
+ # @example
40
+ # Faker::Crypto.sha256 #=> "51e4dbb424cd9db1ec5fb989514f2a35652ececef33f21c8dd1fd61bb8e3929d"
41
+ #
42
+ # @faker.version 1.6.4
16
43
  def sha256
17
44
  Digest::SHA256.hexdigest(Lorem.characters)
18
45
  end
@@ -3,14 +3,41 @@
3
3
  module Faker
4
4
  class Currency < Base
5
5
  class << self
6
+ ##
7
+ # Produces the name of a currency.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Currency.name #=> "Swedish Krona"
13
+ #
14
+ # @faker.version 1.9.0
6
15
  def name
7
16
  fetch('currency.name')
8
17
  end
9
18
 
19
+ ##
20
+ # Produces a currency code.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Currency.code #=> "USD"
26
+ #
27
+ # @faker.version 1.9.0
10
28
  def code
11
29
  fetch('currency.code')
12
30
  end
13
31
 
32
+ ##
33
+ # Produces a currency symbol.
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Currency.symbol #=> "$"
39
+ #
40
+ # @faker.version 1.9.0
14
41
  def symbol
15
42
  fetch('currency.symbol')
16
43
  end