faker 2.4.0 → 2.8.1

Sign up to get free protection for your applications and to get access to all the features.
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