faker 2.12.0 → 2.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +240 -0
  3. data/History.md +4 -4
  4. data/README.md +18 -1
  5. data/lib/faker.rb +14 -14
  6. data/lib/faker/blockchain/aeternity.rb +4 -4
  7. data/lib/faker/blockchain/tezos.rb +28 -0
  8. data/lib/faker/books/dune.rb +15 -2
  9. data/lib/faker/books/lovecraft.rb +8 -4
  10. data/lib/faker/default/address.rb +34 -4
  11. data/lib/faker/default/app.rb +1 -1
  12. data/lib/faker/default/avatar.rb +1 -1
  13. data/lib/faker/default/bank.rb +4 -6
  14. data/lib/faker/default/barcode.rb +165 -0
  15. data/lib/faker/default/beer.rb +3 -3
  16. data/lib/faker/default/blood.rb +3 -3
  17. data/lib/faker/default/camera.rb +46 -0
  18. data/lib/faker/default/cannabis.rb +10 -0
  19. data/lib/faker/default/chile_rut.rb +47 -3
  20. data/lib/faker/default/chuck_norris.rb +1 -0
  21. data/lib/faker/default/code.rb +98 -17
  22. data/lib/faker/default/commerce.rb +1 -1
  23. data/lib/faker/default/company.rb +57 -11
  24. data/lib/faker/default/computer.rb +4 -4
  25. data/lib/faker/default/date.rb +16 -12
  26. data/lib/faker/default/driving_licence.rb +26 -2
  27. data/lib/faker/default/drone.rb +332 -0
  28. data/lib/faker/default/faker_adjective.rb +35 -0
  29. data/lib/faker/default/file.rb +6 -4
  30. data/lib/faker/default/finance.rb +21 -0
  31. data/lib/faker/default/food.rb +1 -1
  32. data/lib/faker/default/gender.rb +1 -1
  33. data/lib/faker/default/hipster.rb +14 -11
  34. data/lib/faker/default/id_number.rb +88 -2
  35. data/lib/faker/default/internet.rb +266 -12
  36. data/lib/faker/default/internet_http.rb +48 -0
  37. data/lib/faker/default/invoice.rb +1 -1
  38. data/lib/faker/default/json.rb +7 -6
  39. data/lib/faker/default/lorem.rb +160 -5
  40. data/lib/faker/default/lorem_flickr.rb +67 -7
  41. data/lib/faker/default/lorem_pixel.rb +23 -0
  42. data/lib/faker/default/markdown.rb +91 -0
  43. data/lib/faker/default/measurement.rb +3 -2
  44. data/lib/faker/default/military.rb +26 -0
  45. data/lib/faker/default/mountain.rb +33 -0
  46. data/lib/faker/default/name.rb +15 -0
  47. data/lib/faker/default/nhs.rb +19 -0
  48. data/lib/faker/default/number.rb +6 -8
  49. data/lib/faker/default/omniauth.rb +62 -14
  50. data/lib/faker/default/placeholdit.rb +3 -2
  51. data/lib/faker/default/relationship.rb +1 -1
  52. data/lib/faker/default/space.rb +1 -1
  53. data/lib/faker/default/string.rb +3 -2
  54. data/lib/faker/default/stripe.rb +3 -3
  55. data/lib/faker/default/vehicle.rb +1 -1
  56. data/lib/faker/default/world_cup.rb +4 -4
  57. data/lib/faker/fantasy/tolkien.rb +67 -0
  58. data/lib/faker/games/clash_of_clans.rb +48 -0
  59. data/lib/faker/games/control.rb +9 -9
  60. data/lib/faker/games/dnd.rb +91 -16
  61. data/lib/faker/games/elder_scrolls.rb +26 -0
  62. data/lib/faker/games/heroes.rb +13 -0
  63. data/lib/faker/games/heroes_of_the_storm.rb +16 -5
  64. data/lib/faker/games/minecraft.rb +113 -0
  65. data/lib/faker/games/street_fighter.rb +61 -0
  66. data/lib/faker/games/super_mario.rb +48 -0
  67. data/lib/faker/games/touhou.rb +75 -0
  68. data/lib/faker/games/warhammer_fantasy.rb +5 -5
  69. data/lib/faker/games/world_of_warcraft.rb +26 -1
  70. data/lib/faker/japanese_media/conan.rb +48 -0
  71. data/lib/faker/japanese_media/doraemon.rb +48 -0
  72. data/lib/faker/japanese_media/dragon_ball.rb +26 -0
  73. data/lib/faker/japanese_media/naruto.rb +61 -0
  74. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  75. data/lib/faker/movies/departed.rb +3 -3
  76. data/lib/faker/movies/hobbit.rb +4 -4
  77. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  78. data/lib/faker/movies/lord_of_the_rings.rb +3 -3
  79. data/lib/faker/movies/movie.rb +13 -0
  80. data/lib/faker/movies/room.rb +63 -0
  81. data/lib/faker/movies/star_wars.rb +74 -2
  82. data/lib/faker/music/hiphop.rb +48 -0
  83. data/lib/faker/music/opera.rb +237 -1
  84. data/lib/faker/music/pearl_jam.rb +3 -3
  85. data/lib/faker/music/phish.rb +2 -2
  86. data/lib/faker/music/prince.rb +64 -0
  87. data/lib/faker/music/rock_band.rb +12 -0
  88. data/lib/faker/music/rush.rb +37 -0
  89. data/lib/faker/music/show.rb +3 -3
  90. data/lib/faker/quotes/quote.rb +26 -0
  91. data/lib/faker/quotes/rajnikanth.rb +1 -0
  92. data/lib/faker/quotes/shakespeare.rb +34 -0
  93. data/lib/faker/sports/volleyball.rb +74 -0
  94. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +13 -0
  95. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  96. data/lib/faker/tv_shows/buffy.rb +17 -4
  97. data/lib/faker/tv_shows/dr_who.rb +1 -1
  98. data/lib/faker/tv_shows/final_space.rb +51 -0
  99. data/lib/faker/tv_shows/futurama.rb +65 -0
  100. data/lib/faker/tv_shows/simpsons.rb +14 -0
  101. data/lib/faker/tv_shows/suits.rb +3 -3
  102. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +17 -4
  103. data/lib/faker/version.rb +1 -1
  104. data/lib/helpers/base58.rb +1 -1
  105. data/lib/helpers/char.rb +20 -26
  106. data/lib/helpers/unique_generator.rb +3 -2
  107. data/lib/locales/de-AT.yml +4 -2
  108. data/lib/locales/de-CH.yml +3 -1
  109. data/lib/locales/de.yml +4 -2
  110. data/lib/locales/en-AU.yml +8 -2
  111. data/lib/locales/en-GB.yml +1 -1
  112. data/lib/locales/en-IND.yml +2 -1
  113. data/lib/locales/en-MS.yml +2 -1
  114. data/lib/locales/en-NEP.yml +4 -1
  115. data/lib/locales/en-NZ.yml +3 -1
  116. data/lib/locales/en-PAK.yml +2 -1
  117. data/lib/locales/en-SG.yml +2 -1
  118. data/lib/locales/en-US.yml +10 -10
  119. data/lib/locales/en-au-ocker.yml +2 -1
  120. data/lib/locales/en.yml +0 -3
  121. data/lib/locales/en/adjective.yml +179 -0
  122. data/lib/locales/en/animal.yml +1 -1
  123. data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
  124. data/lib/locales/en/bank.yml +1 -1
  125. data/lib/locales/en/barcode.yml +24 -0
  126. data/lib/locales/en/big_bang_theory.yml +38 -0
  127. data/lib/locales/en/buffy.yml +1 -1
  128. data/lib/locales/en/camera.yml +611 -0
  129. data/lib/locales/en/clash_of_clan.yml +101 -0
  130. data/lib/locales/en/company.yml +2 -2
  131. data/lib/locales/en/conan.yml +171 -0
  132. data/lib/locales/en/demographic.yml +218 -5
  133. data/lib/locales/en/dnd.yml +430 -33
  134. data/lib/locales/en/doraemon.yml +286 -0
  135. data/lib/locales/en/dota.yml +531 -63
  136. data/lib/locales/en/dragon_ball.yml +243 -1
  137. data/lib/locales/en/driving_license.yml +181 -0
  138. data/lib/locales/en/drone.yml +95 -0
  139. data/lib/locales/en/dune.yml +401 -131
  140. data/lib/locales/en/elder_scrolls.yml +583 -9
  141. data/lib/locales/en/fallout.yml +311 -133
  142. data/lib/locales/en/final_space.yml +37 -0
  143. data/lib/locales/en/finance.yml +53 -0
  144. data/lib/locales/en/football.yml +3 -3
  145. data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
  146. data/lib/locales/en/futurama.yml +344 -0
  147. data/lib/locales/en/half_life.yml +84 -3
  148. data/lib/locales/en/heroes.yml +408 -3
  149. data/lib/locales/en/heroes_of_the_storm.yml +131 -4
  150. data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
  151. data/lib/locales/en/jack_handey.yml +54 -0
  152. data/lib/locales/en/league_of_legends.yml +285 -6
  153. data/lib/locales/en/lebowski.yml +1 -1
  154. data/lib/locales/en/military.yml +179 -5
  155. data/lib/locales/en/minecraft.yml +663 -0
  156. data/lib/locales/en/mountain.yml +158 -0
  157. data/lib/locales/en/movie.yml +192 -1
  158. data/lib/locales/en/music.yml +451 -29
  159. data/lib/locales/en/myst.yml +87 -31
  160. data/lib/locales/en/name.yml +5 -4
  161. data/lib/locales/en/naruto.yml +231 -0
  162. data/lib/locales/en/opera.yml +168 -0
  163. data/lib/locales/en/overwatch.yml +2650 -2622
  164. data/lib/locales/en/pokemon.yml +417 -4
  165. data/lib/locales/en/prince.yml +227 -0
  166. data/lib/locales/en/quote.yml +692 -163
  167. data/lib/locales/en/rock_band.yml +1 -0
  168. data/lib/locales/en/room.yml +68 -0
  169. data/lib/locales/en/rush.yml +32 -0
  170. data/lib/locales/en/simpsons.yml +668 -0
  171. data/lib/locales/en/source.yml +30 -0
  172. data/lib/locales/en/star_trek.yml +1 -1
  173. data/lib/locales/en/star_wars.yml +1 -0
  174. data/lib/locales/en/street_fighter.yml +1524 -0
  175. data/lib/locales/en/studio_ghibli.yml +107 -0
  176. data/lib/locales/en/super_mario.yml +58 -0
  177. data/lib/locales/en/super_smash_bros.yml +18 -4
  178. data/lib/locales/en/tolkien.yml +2453 -0
  179. data/lib/locales/en/touhou.yml +839 -0
  180. data/lib/locales/en/volleyball.yml +501 -0
  181. data/lib/locales/en/witcher.yml +389 -7
  182. data/lib/locales/en/world_of_warcraft.yml +122 -4
  183. data/lib/locales/en/zelda.yml +962 -4
  184. data/lib/locales/es.yml +56 -0
  185. data/lib/locales/fi-FI.yml +1 -1
  186. data/lib/locales/fr-CA.yml +19 -5
  187. data/lib/locales/fr-CH.yml +2 -2
  188. data/lib/locales/fr.yml +12 -6
  189. data/lib/locales/id.yml +3 -1
  190. data/lib/locales/it.yml +2 -1
  191. data/lib/locales/ja.yml +10 -1
  192. data/lib/locales/ko.yml +34 -24
  193. data/lib/locales/nb-NO.yml +4 -2
  194. data/lib/locales/pt-BR.yml +1 -1
  195. data/lib/locales/pt.yml +3 -1
  196. data/lib/locales/ru.yml +3 -1
  197. data/lib/locales/sk.yml +4 -2
  198. data/lib/locales/uk.yml +2 -0
  199. metadata +66 -18
  200. data/lib/locales/en/hobbit.yml +0 -19
  201. data/lib/locales/en/lord_of_the_rings.yml +0 -6
@@ -80,7 +80,7 @@ module Faker
80
80
  #
81
81
  # @faker.version 1.6.2
82
82
  def ibu
83
- rand(10..100).to_s + ' IBU'
83
+ "#{rand(10..100)} IBU"
84
84
  end
85
85
 
86
86
  ##
@@ -93,7 +93,7 @@ module Faker
93
93
  #
94
94
  # @faker.version 1.6.2
95
95
  def alcohol
96
- rand(2.0..10.0).round(1).to_s + '%'
96
+ "#{rand(2.0..10.0).round(1)}%"
97
97
  end
98
98
 
99
99
  ##
@@ -106,7 +106,7 @@ module Faker
106
106
  #
107
107
  # @faker.version 1.6.2
108
108
  def blg
109
- rand(5.0..20.0).round(1).to_s + '°Blg'
109
+ "#{rand(5.0..20.0).round(1)}°Blg"
110
110
  end
111
111
  end
112
112
  end
@@ -13,7 +13,7 @@ module Faker
13
13
  # @example
14
14
  # Faker::Blood.type #=> "AB"
15
15
  #
16
- # @faker.version next
16
+ # @faker.version 2.13.0
17
17
  def type
18
18
  fetch('blood.type')
19
19
  end
@@ -26,7 +26,7 @@ module Faker
26
26
  # @example
27
27
  # Faker::Blood.rh_factor #=> "-"
28
28
  #
29
- # @faker.version next
29
+ # @faker.version 2.13.0
30
30
  def rh_factor
31
31
  fetch('blood.rh_factor')
32
32
  end
@@ -39,7 +39,7 @@ module Faker
39
39
  # @example
40
40
  # Faker::Blood.group #=> "AB-"
41
41
  #
42
- # @faker.version next
42
+ # @faker.version 2.13.0
43
43
  def group
44
44
  parse('blood.group')
45
45
  end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Camera < Base
5
+ class << self
6
+ ##
7
+ # Produces a brand of a camera
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Camera.brand #=> "Canon"
13
+ #
14
+ # @faker.version next
15
+ def brand
16
+ fetch('camera.brand')
17
+ end
18
+
19
+ ##
20
+ # Produces a model of camera
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Camera.model #=> "450D"
26
+ #
27
+ # @faker.version next
28
+ def model
29
+ fetch('camera.model')
30
+ end
31
+
32
+ ##
33
+ # Produces a brand with model
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Camera.brand_with_model #=> "Canon 450D"
39
+ #
40
+ # @faker.version next
41
+ def brand_with_model
42
+ fetch('camera.brand_with_model')
43
+ end
44
+ end
45
+ end
46
+ end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Faker
4
4
  class Cannabis < Base
5
+ ##
5
6
  # Produces a random strain.
6
7
  #
7
8
  # @return [String]
@@ -14,6 +15,7 @@ module Faker
14
15
  fetch('cannabis.strains')
15
16
  end
16
17
 
18
+ ##
17
19
  # Produces a random abbreviation.
18
20
  #
19
21
  # @return [String]
@@ -26,6 +28,7 @@ module Faker
26
28
  fetch('cannabis.cannabinoid_abbreviations')
27
29
  end
28
30
 
31
+ ##
29
32
  # Produces a random cannabinoid type.
30
33
  #
31
34
  # @return [String]
@@ -38,6 +41,7 @@ module Faker
38
41
  fetch('cannabis.cannabinoids')
39
42
  end
40
43
 
44
+ ##
41
45
  # Produces a random terpene type.
42
46
  #
43
47
  # @return [String]
@@ -50,6 +54,7 @@ module Faker
50
54
  fetch('cannabis.terpenes')
51
55
  end
52
56
 
57
+ ##
53
58
  # Produces a random kind of medical use.
54
59
  #
55
60
  # @return [String]
@@ -62,6 +67,7 @@ module Faker
62
67
  fetch('cannabis.medical_uses')
63
68
  end
64
69
 
70
+ ##
65
71
  # Produces a random health benefit.
66
72
  #
67
73
  # @return [String]
@@ -74,6 +80,7 @@ module Faker
74
80
  fetch('cannabis.health_benefits')
75
81
  end
76
82
 
83
+ ##
77
84
  # Produces a random category.
78
85
  #
79
86
  # @return [String]
@@ -86,6 +93,7 @@ module Faker
86
93
  fetch('cannabis.categories')
87
94
  end
88
95
 
96
+ ##
89
97
  # Produces a random type.
90
98
  #
91
99
  # @return [String]
@@ -98,6 +106,7 @@ module Faker
98
106
  fetch('cannabis.types')
99
107
  end
100
108
 
109
+ ##
101
110
  # Produces a random buzzword.
102
111
  #
103
112
  # @return [String]
@@ -110,6 +119,7 @@ module Faker
110
119
  fetch('cannabis.buzzwords')
111
120
  end
112
121
 
122
+ ##
113
123
  # Produces a random brand.
114
124
  #
115
125
  # @return [String]
@@ -5,7 +5,19 @@ module Faker
5
5
  class << self
6
6
  @last_rut = nil
7
7
 
8
- # Fixed param added for testing a specific RUT and check digit combination.
8
+ ##
9
+ # Produces a random Chilean RUT (Rol Unico Tributario, ID with 8 digits).
10
+ #
11
+ # @param min_rut [Integer] Specifies the minimum value of the rut.
12
+ # @param fixed [Boolean] Determines if the rut is fixed (returns the min_rut value).
13
+ # @return [Number]
14
+ #
15
+ # @example
16
+ # Faker::ChileRut.rut #=> 11235813
17
+ # Faker::ChileRut.rut(min_rut: 20890156) #=> 31853211
18
+ # Faker::ChileRut.rut(min_rut: 20890156, fixed: true) #=> 20890156
19
+ #
20
+ # @faker.version 1.9.2
9
21
  def rut(legacy_min_rut = NOT_GIVEN, legacy_fixed = NOT_GIVEN, min_rut: 1, fixed: false)
10
22
  warn_for_deprecated_arguments do |keywords|
11
23
  keywords << :min_rut if legacy_min_rut != NOT_GIVEN
@@ -15,6 +27,15 @@ module Faker
15
27
  @last_rut = fixed ? min_rut : rand_in_range(min_rut, 99_999_999)
16
28
  end
17
29
 
30
+ ##
31
+ # Produces a random Chilean digito verificador (check-digit).
32
+ #
33
+ # @return [String]
34
+ #
35
+ # @example
36
+ # Faker::ChileRut.dv #=> "k"
37
+ #
38
+ # @faker.version 1.9.2
18
39
  def dv
19
40
  split_reversed_rut = @last_rut.to_s.reverse.split('')
20
41
  seq = [2, 3, 4, 5, 6, 7]
@@ -25,20 +46,43 @@ module Faker
25
46
  partial_result
26
47
  end
27
48
  partial_check_digit = 11 - (digit_sum % 11)
28
- if partial_check_digit == 11
49
+ case partial_check_digit
50
+ when 11
29
51
  '0'
30
- elsif partial_check_digit == 10
52
+ when 10
31
53
  'k'
32
54
  else
33
55
  partial_check_digit.to_s
34
56
  end
35
57
  end
36
58
 
59
+ ##
60
+ # Produces a random Chilean digito verificador (check-digit).
37
61
  # Alias for english speaking devs.
62
+ #
63
+ # @return [String]
64
+ #
65
+ # @example
66
+ # Faker::ChileRut.check_digit #=> "5"
67
+ #
68
+ # @faker.version 1.9.2
38
69
  def check_digit
39
70
  dv
40
71
  end
41
72
 
73
+ ##
74
+ # Produces a random Chilean RUT (Rol Unico Tributario, ID with 8 digits) with a dv (digito verificador, check-digit).
75
+ #
76
+ # @param min_rut [Integer] Specifies the minimum value of the rut.
77
+ # @param fixed [Boolean] Determines if the rut is fixed (returns the min_rut value).
78
+ # @return [String]
79
+ #
80
+ # @example
81
+ # Faker::ChileRut.full_rut #=> "30686957-4"
82
+ # Faker::ChileRut.full_rut(min_rut: 20890156) #=> "30686957-4"
83
+ # Faker::ChileRut.full_rut(min_rut: 30686957, fixed: true) #=> "30686957-4"
84
+ #
85
+ # @faker.version 1.9.2
42
86
  def full_rut(legacy_min_rut = NOT_GIVEN, legacy_fixed = NOT_GIVEN, min_rut: 0, fixed: false)
43
87
  warn_for_deprecated_arguments do |keywords|
44
88
  keywords << :min_rut if legacy_min_rut != NOT_GIVEN
@@ -5,6 +5,7 @@ module Faker
5
5
  flexible :chuck_norris
6
6
 
7
7
  class << self
8
+ ##
8
9
  # Produces a Chuck Norris Fact.
9
10
  # Original list of facts:
10
11
  # https://github.com/jenkinsci/chucknorris-plugin/blob/master/src/main/java/hudson/plugins/chucknorris/FactGenerator.java
@@ -4,40 +4,101 @@ module Faker
4
4
  class Code < Base
5
5
  flexible :code
6
6
  class << self
7
- # Generates a 10 digit NPI (National Provider Identifier
8
- # issued to health care providers in the United States)
7
+ ##
8
+ # Produces a random NPI (National Provider Identifer) code.
9
+ #
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::Code.npi #=> "9804062802"
14
+ #
15
+ # @faker.version 1.9.4
9
16
  def npi
10
17
  rand(10**10).to_s.rjust(10, '0')
11
18
  end
12
19
 
13
- # By default generates 10 sign isbn code in format 123456789-X
14
- # You can pass 13 to generate new 13 sign code
20
+ ##
21
+ # Produces a random ISBN (International Standard Book Number) code.
22
+ #
23
+ # @param base [Integer] the length of the code to generate (either 10 or 13)
24
+ # @return [String]
25
+ #
26
+ # @example
27
+ # Faker::Code.isbn(base: 13) #=> "896579606969-8"
28
+ # @example
29
+ # Faker::Code.isbn #=> "170366802-2"
30
+ #
31
+ # @faker.version 2.2.0
15
32
  def isbn(legacy_base = NOT_GIVEN, base: 10)
16
33
  warn_for_deprecated_arguments do |keywords|
17
34
  keywords << :base if legacy_base != NOT_GIVEN
18
35
  end
19
36
 
20
- base == 13 ? generate_base13_isbn : generate_base10_isbn
37
+ case base
38
+ when 10 then generate_base10_isbn
39
+ when 13 then generate_base13_isbn
40
+ else raise ArgumentError, 'base must be 10 or 13'
41
+ end
21
42
  end
22
43
 
23
- # By default generates 13 sign ean code in format 1234567890123
24
- # You can pass 8 to generate ean8 code
44
+ ##
45
+ # Produces a random EAN (European Article Number) code.
46
+ #
47
+ # @param base [Integer] the length of the code to generate (either 8 or 13)
48
+ # @return [String]
49
+ #
50
+ # @example
51
+ # Faker::Code.ean(base: 8) #=> "36941070"
52
+ # @example
53
+ # Faker::Code.ean #=> "9941880131907"
54
+ #
55
+ # @faker.version 2.2.0
25
56
  def ean(legacy_base = NOT_GIVEN, base: 13)
26
57
  warn_for_deprecated_arguments do |keywords|
27
58
  keywords << :base if legacy_base != NOT_GIVEN
28
59
  end
29
60
 
30
- base == 8 ? generate_base8_ean : generate_base13_ean
61
+ case base
62
+ when 8 then generate_base8_ean
63
+ when 13 then generate_base13_ean
64
+ else raise ArgumentError, 'base must be 3 or 13'
65
+ end
31
66
  end
32
67
 
68
+ ##
69
+ # Produces a random RUT (Rol Unico Nacional) code.
70
+ #
71
+ # @return [String]
72
+ #
73
+ # @example
74
+ # Faker::Code.rut #=> "91611842-2"
75
+ #
76
+ # @faker.version 1.9.4
33
77
  def rut
34
78
  value = Number.number(digits: 8).to_s
35
79
  vd = rut_verificator_digit(value)
36
80
  value << "-#{vd}"
37
81
  end
38
82
 
83
+ ##
84
+ # Produces a random NRIC (National Registry Identity Card) code.
39
85
  # By default generates a Singaporean NRIC ID for someone
40
86
  # who is born between the age of 18 and 65.
87
+ #
88
+ # @param min_age [Integer] the min age of the person in years
89
+ # @param max_age [Integer] the max age of the person in years
90
+ # @return [String]
91
+ #
92
+ # @example
93
+ # Faker::Code.nric(min_age: 25, max_age: 50) #=> "S9347283G"
94
+ # @example
95
+ # Faker::Code.nric(max_age: 55) #=> "S7876903C"
96
+ # @example
97
+ # Faker::Code.nric(min_age: 25) #=> "S6281697Z"
98
+ # @example
99
+ # Faker::Code.nric #=> "S6372958B"
100
+ #
101
+ # @faker.version 2.2.0
41
102
  def nric(legacy_min_age = NOT_GIVEN, legacy_max_age = NOT_GIVEN, min_age: 18, max_age: 65)
42
103
  warn_for_deprecated_arguments do |keywords|
43
104
  keywords << :min_age if legacy_min_age != NOT_GIVEN
@@ -52,19 +113,41 @@ module Faker
52
113
  "#{prefix}#{values}#{check_alpha}"
53
114
  end
54
115
 
55
- # Generate GSM modem, device or mobile phone 15 digit IMEI number.
116
+ ##
117
+ # Produces a random IMEI (International Mobile Equipment Number) code.
118
+ #
119
+ # @return [String]
120
+ #
121
+ # @example
122
+ # Faker::Code.imei #=> "492033129092256"
123
+ #
124
+ # @faker.version 1.9.4
56
125
  def imei
57
126
  generate_imei
58
127
  end
59
128
 
60
- # Retrieves a real Amazon ASIN code list taken from
61
- # https://archive.org/details/asin_listing
129
+ ##
130
+ # Retrieves a real Amazon ASIN code from https://archive.org/details/asin_listing
131
+ #
132
+ # @return [String]
133
+ #
134
+ # @example
135
+ # Faker::Code.asin #=> "B000MZW1GE"
136
+ #
137
+ # @faker.version 1.9.4
62
138
  def asin
63
139
  fetch('code.asin')
64
140
  end
65
141
 
66
- # Generates Social Insurance Number issued in Canada
67
- # https://en.wikipedia.org/wiki/Social_Insurance_Number
142
+ ##
143
+ # Produces a random SIN (Social Insurance Number for Canada) code.
144
+ #
145
+ # @return [String]
146
+ #
147
+ # @example
148
+ # Faker::Code.sin #=> "996586962"
149
+ #
150
+ # @faker.version 1.9.4
68
151
  def sin
69
152
  # 1 - province or temporary resident
70
153
  # 2-8 - random numbers
@@ -77,7 +160,7 @@ module Faker
77
160
  partial = Array.new(7) { Faker::Config.random.rand(0..9) }.join
78
161
 
79
162
  # Generate 9th digit
80
- check_digit = generate_sin_check_digit(registry + partial + '0').to_s
163
+ check_digit = generate_sin_check_digit("#{registry}#{partial}0").to_s
81
164
 
82
165
  registry + partial + check_digit
83
166
  end
@@ -90,8 +173,6 @@ module Faker
90
173
  def generate_imei
91
174
  str = Array.new(15, 0)
92
175
  sum = 0
93
- t = 0
94
- len_offset = 0
95
176
  len = 15
96
177
 
97
178
  # Fill in the first two values of the string based with the specified prefix.
@@ -137,7 +218,7 @@ module Faker
137
218
  def generate_base13_isbn
138
219
  values = regexify(/\d{12}/)
139
220
  remainder = sum(values) { |value, index| index.even? ? value.to_i : value.to_i * 3 } % 10
140
- values << "-#{((10 - remainder) % 10)}"
221
+ values << "-#{(10 - remainder) % 10}"
141
222
  end
142
223
 
143
224
  def sum(values)