faker 2.18.0 → 2.21.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +109 -0
  3. data/README.md +16 -3
  4. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
  5. data/lib/faker/default/commerce.rb +28 -0
  6. data/lib/faker/default/company.rb +5 -7
  7. data/lib/faker/default/emotion.rb +33 -0
  8. data/lib/faker/default/finance.rb +13 -0
  9. data/lib/faker/default/food.rb +13 -0
  10. data/lib/faker/default/hobby.rb +22 -0
  11. data/lib/faker/default/internet.rb +40 -16
  12. data/lib/faker/default/lorem.rb +0 -4
  13. data/lib/faker/default/markdown.rb +2 -2
  14. data/lib/faker/default/nation.rb +0 -3
  15. data/lib/faker/default/omniauth.rb +45 -1
  16. data/lib/faker/default/placeholdit.rb +9 -9
  17. data/lib/faker/default/religion.rb +6 -0
  18. data/lib/faker/default/science.rb +82 -0
  19. data/lib/faker/default/string.rb +0 -3
  20. data/lib/faker/default/time.rb +0 -2
  21. data/lib/faker/games/dota.rb +13 -0
  22. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +48 -0
  23. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  24. data/lib/faker/locations/australia.rb +47 -0
  25. data/lib/faker/movies/tron.rb +161 -0
  26. data/lib/faker/music/hiphop.rb +3 -3
  27. data/lib/faker/religion/bible.rb +50 -0
  28. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  29. data/lib/faker/tv_shows/michael_scott.rb +0 -3
  30. data/lib/faker/tv_shows/supernatural.rb +48 -0
  31. data/lib/faker/tv_shows/the_office.rb +37 -0
  32. data/lib/faker/version.rb +2 -2
  33. data/lib/locales/ar.yml +5 -1
  34. data/lib/locales/de-AT.yml +2 -2
  35. data/lib/locales/de.yml +7 -3
  36. data/lib/locales/en/address.yml +2 -3
  37. data/lib/locales/en/animal.yml +1 -1
  38. data/lib/locales/en/australia.yml +108 -0
  39. data/lib/locales/en/bible.yml +90 -0
  40. data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
  41. data/lib/locales/en/cat.yml +1 -1
  42. data/lib/locales/en/coffee.yml +1 -1
  43. data/lib/locales/en/commerce.yml +17 -0
  44. data/lib/locales/en/community.yml +17 -17
  45. data/lib/locales/en/dota.yml +7 -0
  46. data/lib/locales/en/emotion.yml +480 -0
  47. data/lib/locales/en/finance.yml +21 -0
  48. data/lib/locales/en/fma_brotherhood.yml +78 -0
  49. data/lib/locales/en/food.yml +1054 -10
  50. data/lib/locales/en/game.yml +11 -0
  51. data/lib/locales/en/hobby.yml +171 -0
  52. data/lib/locales/en/horse.yml +2 -2
  53. data/lib/locales/en/internet.yml +108 -3
  54. data/lib/locales/en/kamen_rider.yml +452 -0
  55. data/lib/locales/en/kpop.yml +7 -7
  56. data/lib/locales/en/mountain.yml +14 -1
  57. data/lib/locales/en/movie.yml +2 -1
  58. data/lib/locales/en/music.yml +142 -142
  59. data/lib/locales/en/naruto.yml +2 -3
  60. data/lib/locales/en/science.yml +126 -0
  61. data/lib/locales/en/stranger_thing.yml +1 -1
  62. data/lib/locales/en/super_smash_bros.yml +5 -2
  63. data/lib/locales/en/supernatural.yml +141 -0
  64. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  65. data/lib/locales/en/the_office.yml +86 -0
  66. data/lib/locales/en/touhou.yml +1 -1
  67. data/lib/locales/en/tron.yml +227 -0
  68. data/lib/locales/en-US.yml +1 -1
  69. data/lib/locales/es-AR.yml +1 -4
  70. data/lib/locales/fr/adjective.yml +266 -0
  71. data/lib/locales/fr/animal.yml +5 -0
  72. data/lib/locales/fr/appliance.yml +4 -0
  73. data/lib/locales/fr/pokemon.yml +0 -2
  74. data/lib/locales/ja/address.yml +120523 -1
  75. data/lib/locales/ja/animal.yml +5 -0
  76. data/lib/locales/ja/cat.yml +5 -0
  77. data/lib/locales/ja/color.yml +1 -1
  78. data/lib/locales/ja/{creature.yml → dog.yml} +0 -4
  79. data/lib/locales/ja/emotion.yml +51 -0
  80. data/lib/locales/ja/lorem.yml +2 -2
  81. data/lib/locales/ja/naruto.yml +230 -0
  82. data/lib/locales/ja/overwatch.yml +5 -0
  83. data/lib/locales/ja/{games.yml → pokemon.yml} +0 -11
  84. data/lib/locales/ja/relationship.yml +10 -0
  85. data/lib/locales/ja/studio_ghibli.yml +112 -0
  86. data/lib/locales/ja/super_mario.yml +9 -0
  87. data/lib/locales/ja/super_smash_bros.yml +8 -0
  88. data/lib/locales/ja/zelda.yml +5 -0
  89. data/lib/locales/lt.yml +35 -0
  90. data/lib/locales/lv.yml +1 -1
  91. data/lib/locales/mi-NZ.yml +281 -0
  92. data/lib/locales/pt-BR.yml +7 -2
  93. metadata +60 -22
@@ -65,7 +65,7 @@ module Faker
65
65
  picture: image,
66
66
  gender: gender,
67
67
  birthday: Date.backward(days: 36_400).strftime('%Y-%m-%d'),
68
- local: 'en',
68
+ locale: 'en',
69
69
  hd: "#{Company.name.downcase}.com"
70
70
  },
71
71
  id_info: {
@@ -431,6 +431,50 @@ module Faker
431
431
  }
432
432
  end
433
433
 
434
+ ##
435
+ # Generate a mock Omniauth response from Auth0.
436
+ #
437
+ # @param name [String] A specific name to return in the response.
438
+ # @param email [String] A specific email to return in the response.
439
+ # @param uid [String] A specific UID to return in the response.
440
+ #
441
+ # @return [Hash] An auth hash in the format provided by omniauth-auth0.
442
+ #
443
+ # @faker.version next
444
+ def auth0(name: nil, email: nil, uid: nil)
445
+ uid ||= "auth0|#{Number.hexadecimal(digits: 24)}"
446
+ auth = Omniauth.new(name: name, email: email)
447
+ {
448
+ provider: 'auth0',
449
+ uid: uid,
450
+ info: {
451
+ name: uid,
452
+ nickname: auth.name,
453
+ email: auth.email,
454
+ image: image
455
+ },
456
+ credentials: {
457
+ expires_at: Time.forward.to_i,
458
+ expires: true,
459
+ token_type: 'Bearer',
460
+ id_token: Crypto.sha256,
461
+ token: Crypto.md5,
462
+ refresh_token: Crypto.md5
463
+ },
464
+ extra: {
465
+ raw_info: {
466
+ email: auth.email,
467
+ email_verified: true,
468
+ iss: 'https://auth0.com/',
469
+ sub: uid,
470
+ aud: 'Auth012345',
471
+ iat: Time.forward.to_i,
472
+ exp: Time.forward.to_i
473
+ }
474
+ }
475
+ }
476
+ end
477
+
434
478
  private
435
479
 
436
480
  def gender
@@ -8,7 +8,7 @@ module Faker
8
8
  # rubocop:disable Metrics/ParameterLists
9
9
 
10
10
  ##
11
- # Produces a random placeholder image from https://placehold.it.
11
+ # Produces a random placeholder image from https://via.placeholder.com.
12
12
  #
13
13
  # @param size [String] Specifies the image's size, dimensions separated by 'x'.
14
14
  # @param format [String] Specifies the image's extension.
@@ -19,13 +19,13 @@ module Faker
19
19
  #
20
20
  # @example
21
21
  # # Keyword arguments: size, format, background_color, text_color, text
22
- # Faker::Placeholdit.image #=> "https://placehold.it/300x300.png"
23
- # Faker::Placeholdit.image(size: '50x50') #=> "https://placehold.it/50x50.png"
24
- # Faker::Placeholdit.image(size: '50x50', format: 'jpg') #=> "https://placehold.it/50x50.jpg"
25
- # Faker::Placeholdit.image(size: '50x50', format: 'gif', background_color: 'ffffff') #=> "https://placehold.it/50x50.gif/ffffff"
26
- # Faker::Placeholdit.image(size: '50x50', format: 'jpeg', background_color: :random) #=> "https://placehold.it/50x50.jpeg/39eba7"
27
- # Faker::Placeholdit.image(size: '50x50', format: 'jpeg', background_color: 'ffffff', text_color: '000') #=> "https://placehold.it/50x50.jpeg/ffffff/000"
28
- # Faker::Placeholdit.image(size: '50x50', format: 'jpg', background_color: 'ffffff', text_color: '000', text: 'Some Custom Text') #=> "https://placehold.it/50x50.jpg/ffffff/000?text=Some Custom Text"
22
+ # Faker::Placeholdit.image #=> "https://via.placeholder.com/300x300.png"
23
+ # Faker::Placeholdit.image(size: '50x50') #=> "https://via.placeholder.com/50x50.png"
24
+ # Faker::Placeholdit.image(size: '50x50', format: 'jpg') #=> "https://via.placeholder.com/50x50.jpg"
25
+ # Faker::Placeholdit.image(size: '50x50', format: 'gif', background_color: 'ffffff') #=> "https://via.placeholder.com/50x50.gif/ffffff"
26
+ # Faker::Placeholdit.image(size: '50x50', format: 'jpeg', background_color: :random) #=> "https://via.placeholder.com/50x50.jpeg/39eba7"
27
+ # Faker::Placeholdit.image(size: '50x50', format: 'jpeg', background_color: 'ffffff', text_color: '000') #=> "https://via.placeholder.com/50x50.jpeg/ffffff/000"
28
+ # Faker::Placeholdit.image(size: '50x50', format: 'jpg', background_color: 'ffffff', text_color: '000', text: 'Some Custom Text') #=> "https://via.placeholder.com/50x50.jpg/ffffff/000?text=Some Custom Text"
29
29
  #
30
30
  # @faker.version 1.6.0
31
31
  def image(legacy_size = NOT_GIVEN, legacy_format = NOT_GIVEN, legacy_background_color = NOT_GIVEN, legacy_text_color = NOT_GIVEN, legacy_text = NOT_GIVEN, size: '300x300', format: 'png', background_color: nil, text_color: nil, text: nil)
@@ -45,7 +45,7 @@ module Faker
45
45
  raise ArgumentError, "background_color must be a hex value without '#'" unless background_color.nil? || background_color =~ /((?:^\h{3}$)|(?:^\h{6}$)){1}(?!.*\H)/
46
46
  raise ArgumentError, "text_color must be a hex value without '#'" unless text_color.nil? || text_color =~ /((?:^\h{3}$)|(?:^\h{6}$)){1}(?!.*\H)/
47
47
 
48
- image_url = "https://placehold.it/#{size}.#{format}"
48
+ image_url = "https://via.placeholder.com/#{size}.#{format}"
49
49
  image_url += "/#{background_color}" if background_color
50
50
  image_url += "/#{text_color}" if text_color
51
51
  image_url += "?text=#{text}" if text
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ module Religion
5
+ end
6
+ end
@@ -3,6 +3,47 @@
3
3
  module Faker
4
4
  class Science < Base
5
5
  class << self
6
+ BRANCHES = {
7
+ empirical: %i[empirical_natural_basic empirical_natural_applied empirical_social_basic empirical_social_applied],
8
+ formal: %i[formal_basic formal_applied],
9
+ natural: %i[empirical_natural_basic empirical_natural_applied],
10
+ social: %i[empirical_social_basic empirical_social_applied],
11
+ basic: %i[empirical_natural_basic empirical_social_basic formal_basic],
12
+ applied: %i[empirical_natural_applied empirical_social_applied formal_applied]
13
+ }.freeze
14
+
15
+ ##
16
+ # Produces a name of a science
17
+ # You can optionally filter by specifying one or more of the following:
18
+ # `:empirical, :formal, :natural, :social, :basic, :applied`
19
+ # @see https://en.wikipedia.org/wiki/Science#Branches_of_science
20
+ # @see Faker::Educator.subject
21
+ #
22
+ # @param branches [Array<Symbol>]
23
+ # @return [String]
24
+ #
25
+ # @example
26
+ # Faker::Science.science #=> "Space science"
27
+ # Faker::Science.science(:natural, :applied) #=> "Engineering"
28
+ # Faker::Science.science(:formal, :applied) #=> "Computer Science"
29
+ #
30
+ # @faker.version next
31
+ def science(*branches)
32
+ selected = BRANCHES.values.flatten.uniq
33
+ branches.each do |branch|
34
+ selected &= BRANCHES[branch] if BRANCHES.key? branch
35
+ end
36
+
37
+ raise ArgumentError, 'Filters do not match any sciences' if selected.empty?
38
+
39
+ sciences = []
40
+ selected.each do |branch|
41
+ sciences += translate("faker.science.branch.#{branch}")
42
+ end
43
+
44
+ sample(sciences)
45
+ end
46
+
6
47
  ##
7
48
  # Produces the name of a element.
8
49
  #
@@ -67,6 +108,47 @@ module Faker
67
108
  def scientist
68
109
  fetch('science.scientist')
69
110
  end
111
+
112
+ ##
113
+ # Produces a scientifically sounding word
114
+ #
115
+ # @return [String]
116
+ #
117
+ # @example
118
+ # Faker::Science.modifier #=> "Quantum"
119
+ # Faker::Science.modifier #=> "Superconductive"
120
+ #
121
+ # @faker.version next
122
+ def modifier
123
+ fetch('science.modifier')
124
+ end
125
+
126
+ ##
127
+ # Produces the name of a scientific tool.
128
+ # By default it uses a science word modifier to generate more diverse data, which can be disabled.
129
+ #
130
+ # @param simple [Boolean] Whether to generate simple realistic tool names, (no Q-word).
131
+ # @return [String]
132
+ #
133
+ # @example
134
+ # Faker::Science.tool #=> "Superconductive Microcentrifuge"
135
+ # Faker::Science.tool #=> "Portable Cryostat"
136
+ # Faker::Science.tool #=> "Quantum Spectrophotometer"
137
+ # Faker::Science.tool(simple: true) #=> "Microcentrifuge"
138
+ #
139
+ # @faker.version next
140
+ def tool(simple: false)
141
+ tool = fetch('science.tool')
142
+ return tool if simple
143
+
144
+ # Makes sure the modifier are different
145
+ loop do
146
+ modifier = self.modifier
147
+ break unless tool.start_with?(modifier)
148
+ end
149
+
150
+ "#{modifier} #{tool}"
151
+ end
70
152
  end
71
153
  end
72
154
  end
@@ -3,8 +3,6 @@
3
3
  module Faker
4
4
  class String < Base
5
5
  class << self
6
- # rubocop:disable Style/AsciiComments
7
-
8
6
  ##
9
7
  # Produces a random UTF-8 string with optional nested length selectors.
10
8
  #
@@ -26,7 +24,6 @@ module Faker
26
24
 
27
25
  utf8string select_a length
28
26
  end
29
- # rubocop:enable Style/AsciiComments
30
27
 
31
28
  private
32
29
 
@@ -14,7 +14,6 @@ module Faker
14
14
 
15
15
  class << self
16
16
  # rubocop:disable Metrics/ParameterLists
17
- # rubocop:disable Style/AsciiComments
18
17
 
19
18
  ##
20
19
  # Produce a random time between two times.
@@ -51,7 +50,6 @@ module Faker
51
50
  time = Faker::Base.rand_in_range(from, to)
52
51
  time_with_format(time, format)
53
52
  end
54
- # rubocop:enable Style/AsciiComments
55
53
 
56
54
  ##
57
55
  # Produce a random time between two dates.
@@ -4,6 +4,19 @@ module Faker
4
4
  class Games
5
5
  class Dota < Base
6
6
  class << self
7
+ ##
8
+ # Produces the name of a building from Dota.
9
+ #
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::Games::Dota.building #=> "Tower"
14
+ #
15
+ # @faker.version 1.9.0
16
+ def building
17
+ fetch('games.dota.building')
18
+ end
19
+
7
20
  ##
8
21
  # Produces the name of a hero from Dota.
9
22
  #
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class JapaneseMedia
5
+ class FmaBrotherhood < Base
6
+ class << self
7
+ ##
8
+ # Produces a character from FmaBrotherhood.
9
+ #
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::JapaneseMedia::FmaBrotherhood.character #=> "Edward Elric"
14
+ #
15
+ # @faker.version next
16
+ def character
17
+ fetch('fma_brotherhood.characters')
18
+ end
19
+
20
+ ##
21
+ # Produces a cities from FmaBrotherhood.
22
+ #
23
+ # @return [String]
24
+ #
25
+ # @example
26
+ # Faker::JapaneseMedia::FmaBrotherhood.city #=> "Central City"
27
+ #
28
+ # @faker.version next
29
+ def city
30
+ fetch('fma_brotherhood.cities')
31
+ end
32
+
33
+ ##
34
+ # Produces a country from FmaBrotherhood.
35
+ #
36
+ # @return [String]
37
+ #
38
+ # @example
39
+ # Faker::JapaneseMedia::FmaBrotherhood.country #=> "Xing"
40
+ #
41
+ # @faker.version next
42
+ def country
43
+ fetch('fma_brotherhood.countries')
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,102 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class JapaneseMedia
5
+ class KamenRider < Base
6
+ class << self
7
+ ERAS = %i[showa heisei reiwa].freeze
8
+
9
+ def eras=(new_eras)
10
+ selected_eras = ERAS & new_eras
11
+ @eras = selected_eras.empty? ? ERAS : selected_eras
12
+ end
13
+
14
+ ##
15
+ # Produces the name of a Kamen Rider from a series in the given era.
16
+ #
17
+ # @return [String]
18
+ #
19
+ # @example
20
+ # Faker::JapaneseMedia::KamenRider.kamen_rider #=> "Kamen Rider Revice"
21
+ #
22
+ # @faker.version next
23
+ def kamen_rider(*eras)
24
+ from_eras(*eras, field: :kamen_riders)
25
+ end
26
+
27
+ ##
28
+ # Produces the name of a main user of Kamen Rider.
29
+ #
30
+ # @return [String]
31
+ #
32
+ # @example
33
+ # Faker::JapaneseMedia::KamenRider.user #=> "Ikki Igarashi"
34
+ #
35
+ # @faker.version next
36
+ def user(*eras)
37
+ from_eras(*eras, field: :users)
38
+ end
39
+
40
+ ##
41
+ # Produces the name of a Kamen Rider series.
42
+ #
43
+ # @return [String]
44
+ #
45
+ # @example
46
+ # Faker::JapaneseMedia::KamenRider.series #=> "Kamen Rider Revice"
47
+ #
48
+ # @faker.version next
49
+ def series(*eras)
50
+ from_eras(*eras, field: :series)
51
+ end
52
+
53
+ ##
54
+ # Produces the name of a collectible device from a Kamen Rider series.
55
+ #
56
+ # @return [String]
57
+ #
58
+ # @example
59
+ # Faker::JapaneseMedia::KamenRider.collectible_device #=> "Vistamp"
60
+ #
61
+ # @faker.version next
62
+ def collectible_device(*eras)
63
+ from_eras(*eras, field: :collectible_devices) { |e| e.delete(:showa) }
64
+ end
65
+
66
+ # Produces the name of a transformation device used by a Kamen Rider
67
+ # from the given eras.
68
+ #
69
+ # @return [String]
70
+ #
71
+ # @example Faker::JapaneseMedia::KamenRider.transformation_device #=>
72
+ # "Revice Driver"
73
+ #
74
+ # @faker.version next
75
+ def transformation_device(*eras)
76
+ from_eras(*eras, field: :transformation_devices)
77
+ end
78
+
79
+ private
80
+
81
+ def eras
82
+ @eras ||= ERAS
83
+ end
84
+
85
+ def from_eras(*input_eras, field:)
86
+ selected_eras = (ERAS & input_eras).yield_self do |selected|
87
+ selected.empty? ? eras : selected
88
+ end.dup
89
+ yield(selected_eras) if block_given?
90
+
91
+ raise UnavailableInEra, "#{field} is unavailable in the selected eras." if selected_eras.empty?
92
+
93
+ selected_eras.sample.yield_self do |era|
94
+ fetch("kamen_rider.#{era}.#{field}")
95
+ end
96
+ end
97
+
98
+ class UnavailableInEra < StandardError; end
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Australia < Base
5
+ class << self
6
+ ##
7
+ # Produces a location in Australia
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Australia.location
13
+ # #=> "Sydney"
14
+ #
15
+ # @faker.version next
16
+ def location
17
+ fetch('australia.locations')
18
+ end
19
+
20
+ # Produces an Australian animal
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Australia.animal
26
+ # #=> "Dingo"
27
+ #
28
+ # @faker.version next
29
+ def animal
30
+ fetch('australia.animals')
31
+ end
32
+
33
+ # Produces an Australian State or Territory
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Australia.state
39
+ # #=> "New South Wales"
40
+ #
41
+ # @faker.version next
42
+ def state
43
+ fetch('australia.states')
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,161 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Movies
5
+ class Tron < Base
6
+ class << self
7
+ ##
8
+ # Produces a character from Tron.
9
+ #
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::Movies::Tron.character #=> "Bit"
14
+ #
15
+ # @faker.version next
16
+ def character
17
+ sample(characters)
18
+ end
19
+
20
+ ##
21
+ # Produces a game from Tron.
22
+ #
23
+ # @return [String]
24
+ #
25
+ # @example
26
+ # Faker::Movies::Tron.game #=> "Space Paranoids"
27
+ #
28
+ # @faker.version next
29
+ def game
30
+ sample(games)
31
+ end
32
+
33
+ ##
34
+ # Produces a location from Tron.
35
+ #
36
+ # @return [String]
37
+ #
38
+ # @example
39
+ # Faker::Movies::Tron.location #=> "Flynn's Arcade"
40
+ #
41
+ # @faker.version next
42
+ def location
43
+ sample(locations)
44
+ end
45
+
46
+ ##
47
+ # Produces a program from Tron.
48
+ #
49
+ # @return [String]
50
+ #
51
+ # @example
52
+ # Faker::Movies::Tron.program #=> "Clu"
53
+ #
54
+ # @faker.version next
55
+ def program
56
+ sample(programs)
57
+ end
58
+
59
+ ##
60
+ # Produces a quote from Tron.
61
+ #
62
+ # @param character [String] The name of a character to derive a quote from.
63
+ # @return [String]
64
+ #
65
+ # @example
66
+ # Faker::Movies::Tron.quote #=> "Greetings, Programs!"
67
+ #
68
+ # @example
69
+ # Faker::Movies::Tron.quote(character: "mcp")
70
+ # #=> "End of Line."
71
+ #
72
+ # @faker.version next
73
+ def quote(character: nil)
74
+ quoted_characters = translate('faker.tron.quotes')
75
+
76
+ if character.nil?
77
+ character = sample(quoted_characters.keys).to_s
78
+ else
79
+ character = character.to_s.downcase
80
+
81
+ # check alternate spellings, nicknames, titles of characters
82
+ translate('faker.tron.alternate_character_spellings').each do |k, v|
83
+ character = k.to_s if v.include?(character)
84
+ end
85
+
86
+ raise ArgumentError, "Character for quotes can be left blank or #{quoted_characters.keys.join(', ')}" unless quoted_characters.key?(character.to_sym)
87
+ end
88
+
89
+ fetch("tron.quotes.#{character}")
90
+ end
91
+
92
+ ##
93
+ # Produces a tagline from Tron.
94
+ #
95
+ # @return [String]
96
+ #
97
+ # @example
98
+ # Faker::Movies::Tron.tagline #=> "The Electronic Gladiator"
99
+ #
100
+ # @faker.version next
101
+ def tagline
102
+ sample(taglines)
103
+ end
104
+
105
+ ##
106
+ # Produces a user from Tron.
107
+ #
108
+ # @return [String]
109
+ #
110
+ # @example
111
+ # Faker::Movies::Tron.user #=> "Light Cycle"
112
+ #
113
+ # @faker.version next
114
+ def user
115
+ sample(users)
116
+ end
117
+
118
+ ##
119
+ # Produces a vehicle from Tron.
120
+ #
121
+ # @return [String]
122
+ #
123
+ # @example
124
+ # Faker::Movies::Tron.vehicle #=> "Light Cycle"
125
+ #
126
+ # @faker.version next
127
+ def vehicle
128
+ sample(vehicles)
129
+ end
130
+
131
+ def characters
132
+ translate('faker.tron.characters').values.flatten
133
+ end
134
+
135
+ def games
136
+ fetch_all('tron.games')
137
+ end
138
+
139
+ def locations
140
+ fetch_all('tron.locations')
141
+ end
142
+
143
+ def programs
144
+ fetch_all('tron.characters.programs')
145
+ end
146
+
147
+ def taglines
148
+ fetch_all('tron.taglines')
149
+ end
150
+
151
+ def users
152
+ fetch_all('tron.characters.users')
153
+ end
154
+
155
+ def vehicles
156
+ fetch_all('tron.vehicles')
157
+ end
158
+ end
159
+ end
160
+ end
161
+ end
@@ -14,7 +14,7 @@ module Faker
14
14
  #
15
15
  # @faker.version next
16
16
  def artist
17
- fetch('hiphop.artist')
17
+ fetch('music.hiphop.artist')
18
18
  end
19
19
 
20
20
  ##
@@ -27,7 +27,7 @@ module Faker
27
27
  #
28
28
  # @faker.version next
29
29
  def groups
30
- fetch('hiphop.groups')
30
+ fetch('music.hiphop.groups')
31
31
  end
32
32
 
33
33
  ##
@@ -40,7 +40,7 @@ module Faker
40
40
  #
41
41
  # @faker.version next
42
42
  def subgenres
43
- fetch('hiphop.subgenres')
43
+ fetch('music.hiphop.subgenres')
44
44
  end
45
45
  end
46
46
  end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ module Religion
5
+ class Bible < Base
6
+ flexible :bible
7
+
8
+ class << self
9
+ ##
10
+ # Returns a random bible character.
11
+ #
12
+ # @return [String]
13
+ #
14
+ # @example
15
+ # Faker::Religion::Bible.character #=> "Jesus"
16
+ #
17
+ # @faker.version next
18
+ def character
19
+ fetch('bible.character')
20
+ end
21
+
22
+ ##
23
+ # Returns a random location(city or town) from the bible
24
+ #
25
+ # @return [String]
26
+ #
27
+ # @example
28
+ # Faker::Religion::Bible.location #=> "Nasareth"
29
+ #
30
+ # @faker.version next
31
+ def location
32
+ fetch('bible.location')
33
+ end
34
+
35
+ ##
36
+ # Returns a random quote from the location.
37
+ #
38
+ # @return [String]
39
+ #
40
+ # @example
41
+ # Faker::Religion::Bible.quote #=> "Seek first the kingdom of God "
42
+ #
43
+ # @faker.version next
44
+ def quote
45
+ fetch('bible.quote')
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end