faker 2.10.2 → 2.15.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 (219) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +323 -0
  3. data/README.md +27 -2
  4. data/lib/faker.rb +57 -25
  5. data/lib/faker/blockchain/aeternity.rb +4 -4
  6. data/lib/faker/books/dune.rb +15 -2
  7. data/lib/faker/books/lovecraft.rb +8 -4
  8. data/lib/faker/default/address.rb +35 -5
  9. data/lib/faker/default/bank.rb +80 -3
  10. data/lib/faker/default/barcode.rb +154 -0
  11. data/lib/faker/default/beer.rb +3 -3
  12. data/lib/faker/default/blood.rb +48 -0
  13. data/lib/faker/default/business.rb +1 -1
  14. data/lib/faker/default/camera.rb +46 -0
  15. data/lib/faker/default/cannabis.rb +80 -0
  16. data/lib/faker/default/chile_rut.rb +47 -3
  17. data/lib/faker/default/code.rb +98 -17
  18. data/lib/faker/default/commerce.rb +74 -11
  19. data/lib/faker/default/company.rb +78 -11
  20. data/lib/faker/default/compass.rb +135 -0
  21. data/lib/faker/default/computer.rb +63 -0
  22. data/lib/faker/default/construction.rb +54 -0
  23. data/lib/faker/default/cosmere.rb +90 -0
  24. data/lib/faker/default/crypto_coin.rb +45 -0
  25. data/lib/faker/default/date.rb +16 -12
  26. data/lib/faker/default/driving_licence.rb +65 -0
  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 +49 -0
  30. data/lib/faker/default/finance.rb +45 -0
  31. data/lib/faker/default/food.rb +1 -1
  32. data/lib/faker/default/funny_name.rb +45 -0
  33. data/lib/faker/default/gender.rb +1 -1
  34. data/lib/faker/default/hipster.rb +101 -4
  35. data/lib/faker/default/id_number.rb +88 -2
  36. data/lib/faker/default/internet.rb +68 -10
  37. data/lib/faker/default/internet_http.rb +48 -0
  38. data/lib/faker/default/invoice.rb +33 -6
  39. data/lib/faker/default/json.rb +59 -4
  40. data/lib/faker/default/lorem.rb +2 -2
  41. data/lib/faker/default/lorem_flickr.rb +65 -0
  42. data/lib/faker/default/lorem_pixel.rb +22 -0
  43. data/lib/faker/default/markdown.rb +89 -0
  44. data/lib/faker/default/measurement.rb +93 -2
  45. data/lib/faker/default/military.rb +26 -0
  46. data/lib/faker/default/mountain.rb +33 -0
  47. data/lib/faker/default/name.rb +98 -0
  48. data/lib/faker/default/nhs.rb +19 -0
  49. data/lib/faker/default/number.rb +6 -8
  50. data/lib/faker/default/omniauth.rb +107 -52
  51. data/lib/faker/default/phone_number.rb +88 -5
  52. data/lib/faker/default/placeholdit.rb +21 -0
  53. data/lib/faker/default/relationship.rb +1 -1
  54. data/lib/faker/default/slack_emoji.rb +81 -0
  55. data/lib/faker/default/south_africa.rb +90 -0
  56. data/lib/faker/default/space.rb +1 -1
  57. data/lib/faker/default/string.rb +19 -3
  58. data/lib/faker/default/stripe.rb +64 -3
  59. data/lib/faker/default/twitter.rb +35 -0
  60. data/lib/faker/default/types.rb +80 -0
  61. data/lib/faker/default/university.rb +45 -0
  62. data/lib/faker/default/vehicle.rb +184 -4
  63. data/lib/faker/default/verb.rb +45 -0
  64. data/lib/faker/default/world_cup.rb +4 -4
  65. data/lib/faker/fantasy/tolkien.rb +67 -0
  66. data/lib/faker/games/clash_of_clans.rb +48 -0
  67. data/lib/faker/games/control.rb +113 -0
  68. data/lib/faker/games/dnd.rb +136 -0
  69. data/lib/faker/games/elder_scrolls.rb +26 -0
  70. data/lib/faker/games/heroes.rb +13 -0
  71. data/lib/faker/games/heroes_of_the_storm.rb +16 -5
  72. data/lib/faker/games/minecraft.rb +113 -0
  73. data/lib/faker/games/street_fighter.rb +61 -0
  74. data/lib/faker/games/super_mario.rb +48 -0
  75. data/lib/faker/games/warhammer_fantasy.rb +74 -0
  76. data/lib/faker/games/world_of_warcraft.rb +26 -1
  77. data/lib/faker/japanese_media/conan.rb +48 -0
  78. data/lib/faker/japanese_media/doraemon.rb +48 -0
  79. data/lib/faker/japanese_media/dragon_ball.rb +26 -0
  80. data/lib/faker/japanese_media/naruto.rb +61 -0
  81. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  82. data/lib/faker/movies/departed.rb +49 -0
  83. data/lib/faker/movies/hobbit.rb +4 -4
  84. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  85. data/lib/faker/movies/lord_of_the_rings.rb +3 -3
  86. data/lib/faker/movies/movie.rb +13 -0
  87. data/lib/faker/movies/room.rb +63 -0
  88. data/lib/faker/movies/star_wars.rb +2 -2
  89. data/lib/faker/music/hiphop.rb +48 -0
  90. data/lib/faker/music/opera.rb +237 -1
  91. data/lib/faker/music/pearl_jam.rb +50 -0
  92. data/lib/faker/music/phish.rb +27 -1
  93. data/lib/faker/music/prince.rb +64 -0
  94. data/lib/faker/music/rush.rb +37 -0
  95. data/lib/faker/music/show.rb +49 -0
  96. data/lib/faker/quotes/chiquito.rb +80 -0
  97. data/lib/faker/quotes/quote.rb +80 -1
  98. data/lib/faker/quotes/rajnikanth.rb +26 -0
  99. data/lib/faker/quotes/shakespeare.rb +36 -0
  100. data/lib/faker/sports/volleyball.rb +74 -0
  101. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +13 -0
  102. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  103. data/lib/faker/tv_shows/buffy.rb +17 -4
  104. data/lib/faker/tv_shows/dr_who.rb +1 -1
  105. data/lib/faker/tv_shows/final_space.rb +51 -0
  106. data/lib/faker/tv_shows/futurama.rb +65 -0
  107. data/lib/faker/tv_shows/simpsons.rb +14 -0
  108. data/lib/faker/tv_shows/suits.rb +37 -0
  109. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +17 -4
  110. data/lib/faker/version.rb +1 -1
  111. data/lib/helpers/base58.rb +1 -1
  112. data/lib/helpers/char.rb +22 -27
  113. data/lib/helpers/unique_generator.rb +3 -2
  114. data/lib/locales/de-AT.yml +4 -2
  115. data/lib/locales/de-CH.yml +1696 -1
  116. data/lib/locales/de.yml +4 -2
  117. data/lib/locales/en-AU.yml +50 -10
  118. data/lib/locales/en-CA.yml +2 -0
  119. data/lib/locales/en-GB.yml +1 -1
  120. data/lib/locales/en-IND.yml +2 -1
  121. data/lib/locales/en-MS.yml +2 -1
  122. data/lib/locales/en-NEP.yml +4 -1
  123. data/lib/locales/en-NZ.yml +3 -1
  124. data/lib/locales/en-PAK.yml +2 -1
  125. data/lib/locales/en-SG.yml +2 -1
  126. data/lib/locales/en-US.yml +36 -10
  127. data/lib/locales/en-au-ocker.yml +2 -1
  128. data/lib/locales/en.yml +0 -3
  129. data/lib/locales/en/address.yml +2 -0
  130. data/lib/locales/en/adjective.yml +179 -0
  131. data/lib/locales/en/animal.yml +1 -1
  132. data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
  133. data/lib/locales/en/bank.yml +1 -1
  134. data/lib/locales/en/barcode.yml +24 -0
  135. data/lib/locales/en/big_bang_theory.yml +38 -0
  136. data/lib/locales/en/blood.yml +13 -0
  137. data/lib/locales/en/buffy.yml +1 -1
  138. data/lib/locales/en/camera.yml +611 -0
  139. data/lib/locales/en/chiquito.yml +64 -0
  140. data/lib/locales/en/clash_of_clan.yml +101 -0
  141. data/lib/locales/en/company.yml +2 -2
  142. data/lib/locales/en/computer.yml +36 -0
  143. data/lib/locales/en/conan.yml +171 -0
  144. data/lib/locales/en/control.yml +247 -0
  145. data/lib/locales/en/demographic.yml +218 -5
  146. data/lib/locales/en/departed.yml +50 -0
  147. data/lib/locales/en/dnd.yml +451 -0
  148. data/lib/locales/en/doraemon.yml +286 -0
  149. data/lib/locales/en/dota.yml +531 -63
  150. data/lib/locales/en/dragon_ball.yml +243 -1
  151. data/lib/locales/en/driving_license.yml +181 -0
  152. data/lib/locales/en/drone.yml +95 -0
  153. data/lib/locales/en/dune.yml +401 -131
  154. data/lib/locales/en/elder_scrolls.yml +583 -9
  155. data/lib/locales/en/fallout.yml +311 -133
  156. data/lib/locales/en/final_space.yml +37 -0
  157. data/lib/locales/en/finance.yml +53 -0
  158. data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
  159. data/lib/locales/en/futurama.yml +344 -0
  160. data/lib/locales/en/half_life.yml +84 -3
  161. data/lib/locales/en/heroes.yml +408 -3
  162. data/lib/locales/en/heroes_of_the_storm.yml +131 -4
  163. data/lib/locales/en/house.yml +1 -1
  164. data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
  165. data/lib/locales/en/jack_handey.yml +54 -0
  166. data/lib/locales/en/league_of_legends.yml +285 -6
  167. data/lib/locales/en/military.yml +179 -5
  168. data/lib/locales/en/minecraft.yml +663 -0
  169. data/lib/locales/en/mountain.yml +158 -0
  170. data/lib/locales/en/movie.yml +192 -1
  171. data/lib/locales/en/music.yml +451 -29
  172. data/lib/locales/en/myst.yml +87 -31
  173. data/lib/locales/en/name.yml +6 -5
  174. data/lib/locales/en/naruto.yml +231 -0
  175. data/lib/locales/en/one_piece.yml +2 -2
  176. data/lib/locales/en/opera.yml +168 -0
  177. data/lib/locales/en/overwatch.yml +2650 -2622
  178. data/lib/locales/en/pearl_jam.yml +213 -0
  179. data/lib/locales/en/phish.yml +392 -1
  180. data/lib/locales/en/pokemon.yml +417 -4
  181. data/lib/locales/en/prince.yml +227 -0
  182. data/lib/locales/en/quote.yml +692 -163
  183. data/lib/locales/en/rajnikanth.yml +77 -0
  184. data/lib/locales/en/room.yml +68 -0
  185. data/lib/locales/en/rush.yml +32 -0
  186. data/lib/locales/en/show.yml +597 -0
  187. data/lib/locales/en/simpsons.yml +668 -0
  188. data/lib/locales/en/source.yml +30 -0
  189. data/lib/locales/en/star_trek.yml +1 -1
  190. data/lib/locales/en/star_wars.yml +568 -220
  191. data/lib/locales/en/street_fighter.yml +1524 -0
  192. data/lib/locales/en/studio_ghibli.yml +107 -0
  193. data/lib/locales/en/suits.yml +45 -0
  194. data/lib/locales/en/super_mario.yml +58 -0
  195. data/lib/locales/en/super_smash_bros.yml +16 -4
  196. data/lib/locales/en/tolkien.yml +2453 -0
  197. data/lib/locales/en/volleyball.yml +501 -0
  198. data/lib/locales/en/warhammer_fantasy.yml +582 -0
  199. data/lib/locales/en/witcher.yml +389 -7
  200. data/lib/locales/en/world_of_warcraft.yml +122 -4
  201. data/lib/locales/en/zelda.yml +962 -4
  202. data/lib/locales/es.yml +56 -0
  203. data/lib/locales/fi-FI.yml +1 -1
  204. data/lib/locales/fr-CA.yml +21 -5
  205. data/lib/locales/fr-CH.yml +2 -2
  206. data/lib/locales/fr.yml +8 -2
  207. data/lib/locales/id.yml +2 -1
  208. data/lib/locales/it.yml +2 -1
  209. data/lib/locales/ja.yml +5 -1
  210. data/lib/locales/ko.yml +94 -2
  211. data/lib/locales/nb-NO.yml +4 -2
  212. data/lib/locales/pt-BR.yml +2 -1
  213. data/lib/locales/pt.yml +3 -1
  214. data/lib/locales/ru.yml +3 -1
  215. data/lib/locales/sk.yml +4 -2
  216. data/lib/locales/uk.yml +2 -0
  217. metadata +89 -21
  218. data/lib/locales/en/hobbit.yml +0 -19
  219. data/lib/locales/en/lord_of_the_rings.yml +0 -6
@@ -0,0 +1,154 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Barcode < Base
5
+ class << self
6
+ ## Returns a EAN 8 or 13 digit format barcode number with check digit
7
+ # @returns [String]
8
+ #
9
+ # @example
10
+ # Faker::Barcode.ean => "85657526"
11
+ # Faker::Barcode.ean(8) => "30152700"
12
+ # Faker::Barcode.ean(13) => "2115190480285"
13
+ #
14
+ # @faker.version 2.14.0
15
+ def ean(length = 8)
16
+ generate_barcode("barcode.ean_#{Integer(length)}")
17
+ end
18
+
19
+ ## Returns a EAN 8 or 13 digit format barcode number with composite string attached with check digit
20
+ # @returns [String]
21
+ #
22
+ # @example
23
+ # Faker::Barcode.ean_with_composite_sumbology => "41007624|JHOC6649"
24
+ # Faker::Barcode.ean_with_composite_sumbology(8) => "38357961|XUYJ3266"
25
+ # Faker::Barcode.ean_with_composite_sumbology(13) => "9530722443911|CKHWQHID"
26
+ #
27
+ # @faker.version 2.14.0
28
+ def ean_with_composite_symbology(length = 8)
29
+ "#{ean(length)}|#{bothify(parse('barcode.composite_symbol'))}"
30
+ end
31
+
32
+ ## Returns a UPC_A format barcode number with check digit
33
+ # @returns [String]
34
+ #
35
+ # @example
36
+ # Faker::Barcode.upc_a => "766807541831"
37
+ #
38
+ # @faker.version 2.14.0
39
+ def upc_a
40
+ generate_barcode('barcode.upc_a')
41
+ end
42
+
43
+ ## Returns a UPC_E format barcode number with check digit
44
+ # @returns [String]
45
+ #
46
+ # @example
47
+ # Faker::Barcode.upc_e => "03746820"
48
+ #
49
+ # @faker.version 2.14.0
50
+ def upc_e
51
+ generate_barcode('barcode.upc_e')
52
+ end
53
+
54
+ ## Returns a UPC_A format barcode number with composite string attached with check digit
55
+ # @returns [String]
56
+ #
57
+ # @example
58
+ # Faker::Barcode.upc_a_with_composite_symbology => "790670155765|JOVG6208"
59
+ #
60
+ # @faker.version 2.14.0
61
+ def upc_a_with_composite_symbology
62
+ "#{upc_a}|#{bothify(parse('barcode.composite_symbol'))}"
63
+ end
64
+
65
+ ## Returns a UPC_E format barcode number with composite string attached with check digit
66
+ # @returns [String]
67
+ #
68
+ # @example
69
+ # Faker::Barcode.upc_e_with_composite_symbology => "05149247|BKZX9722"
70
+ #
71
+ # @faker.version 2.14.0
72
+ def upc_e_with_composite_symbology
73
+ "#{upc_e}|#{bothify(parse('barcode.composite_symbol'))}"
74
+ end
75
+
76
+ ## Returns a ISBN format barcode number with check digit
77
+ # @returns [String]
78
+ #
79
+ # @example
80
+ # Faker::Barcode.isbn => "9798363807732"
81
+ #
82
+ # @faker.version 2.14.0
83
+ def isbn
84
+ generate_barcode('barcode.isbn')
85
+ end
86
+
87
+ ## Returns a ISMN format barcode number with check digit
88
+ # @returns [String]
89
+ #
90
+ # @example
91
+ # Faker::Barcode.ismn => "9790527672897"
92
+ #
93
+ # @faker.version 2.14.0
94
+ def ismn
95
+ generate_barcode('barcode.ismn')
96
+ end
97
+
98
+ ## Returns a ISSN format barcode number with check digit
99
+ # @returns [String]
100
+ #
101
+ # @example
102
+ # Faker::Barcode.issn => "9775541703338"
103
+ #
104
+ # @faker.version 2.14.0
105
+ def issn
106
+ generate_barcode('barcode.issn')
107
+ end
108
+
109
+ private
110
+
111
+ def generate_barcode(key)
112
+ barcode = parse(key)
113
+ check_digit = generate_check_digit(*sum_even_odd(barcode))
114
+ "#{barcode}#{check_digit}"
115
+ end
116
+
117
+ ## Returns the sum of even and odd numbers from value passed
118
+ #
119
+ # @returns [Array]
120
+ #
121
+ # @example
122
+ # Faker::Barcode.send(:sum_even_odd, 12345) => [9, 5]
123
+ # Faker::Barcode.send(:sum_even_odd, 87465) => [17, 13]
124
+ #
125
+ # @faker.version 2.14.0
126
+ def sum_even_odd(fake_num)
127
+ number = fake_num.to_i
128
+ sum_even, sum_odd = 0, 0, index = 1
129
+
130
+ while number != 0
131
+ index.even? ? sum_even += number % 10 : sum_odd += number % 10
132
+
133
+ number /= 10
134
+ index += 1
135
+ end
136
+
137
+ [sum_odd, sum_even]
138
+ end
139
+
140
+ ## Generates the check digits from sum passed
141
+ #
142
+ # @returns [Integer]
143
+ #
144
+ # @example
145
+ # Faker::Barcode.send(:generate_check_digit, 12, 4) => 0
146
+ # Faker::Barcode.send(:generate_check_digit, 23, 5) => 6
147
+ #
148
+ # @faker.version 2.14.0
149
+ def generate_check_digit(odd_sum, even_sum)
150
+ (10 - (odd_sum * 3 + even_sum) % 10) % 10
151
+ end
152
+ end
153
+ end
154
+ end
@@ -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
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Blood < Base
5
+ flexible :blood
6
+
7
+ class << self
8
+ ##
9
+ # Produces a random blood type.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::Blood.type #=> "AB"
15
+ #
16
+ # @faker.version 2.13.0
17
+ def type
18
+ fetch('blood.type')
19
+ end
20
+
21
+ ##
22
+ # Produces a random blood RH-Factor.
23
+ #
24
+ # @return [String]
25
+ #
26
+ # @example
27
+ # Faker::Blood.rh_factor #=> "-"
28
+ #
29
+ # @faker.version 2.13.0
30
+ def rh_factor
31
+ fetch('blood.rh_factor')
32
+ end
33
+
34
+ ##
35
+ # Produces a random blood group name.
36
+ #
37
+ # @return [String]
38
+ #
39
+ # @example
40
+ # Faker::Blood.group #=> "AB-"
41
+ #
42
+ # @faker.version 2.13.0
43
+ def group
44
+ parse('blood.group')
45
+ end
46
+ end
47
+ end
48
+ end
@@ -26,7 +26,7 @@ module Faker
26
26
  # @return [Date]
27
27
  #
28
28
  # @example
29
- # Faker::Business.credit_card_number #=> <Date: 2015-11-11 ((2457338j,0s,0n),+0s,2299161j)>
29
+ # Faker::Business.credit_card_expiry_date #=> <Date: 2015-11-11 ((2457338j,0s,0n),+0s,2299161j)>
30
30
  #
31
31
  # @faker.version 1.2.0
32
32
  def credit_card_expiry_date
@@ -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,42 +2,122 @@
2
2
 
3
3
  module Faker
4
4
  class Cannabis < Base
5
+ # Produces a random strain.
6
+ #
7
+ # @return [String]
8
+ #
9
+ # @example
10
+ # Faker::Cannabis.strain #=> "Super Glue"
11
+ #
12
+ # @faker.version 1.9.1
5
13
  def self.strain
6
14
  fetch('cannabis.strains')
7
15
  end
8
16
 
17
+ # Produces a random abbreviation.
18
+ #
19
+ # @return [String]
20
+ #
21
+ # @example
22
+ # Faker::Cannabis.cannabinoid_abbreviation #=> "CBGa"
23
+ #
24
+ # @faker.version 1.9.1
9
25
  def self.cannabinoid_abbreviation
10
26
  fetch('cannabis.cannabinoid_abbreviations')
11
27
  end
12
28
 
29
+ # Produces a random cannabinoid type.
30
+ #
31
+ # @return [String]
32
+ #
33
+ # @example
34
+ # Faker::Cannabis.cannabinoid #=> "Cannabinolic Acid"
35
+ #
36
+ # @faker.version 1.9.1
13
37
  def self.cannabinoid
14
38
  fetch('cannabis.cannabinoids')
15
39
  end
16
40
 
41
+ # Produces a random terpene type.
42
+ #
43
+ # @return [String]
44
+ #
45
+ # @example
46
+ # Faker::Cannabis.terpene #=> "Terpinene"
47
+ #
48
+ # @faker.version 1.9.1
17
49
  def self.terpene
18
50
  fetch('cannabis.terpenes')
19
51
  end
20
52
 
53
+ # Produces a random kind of medical use.
54
+ #
55
+ # @return [String]
56
+ #
57
+ # @example
58
+ # Faker::Cannabis.medical_use #=> "anti-cancer"
59
+ #
60
+ # @faker.version 1.9.1
21
61
  def self.medical_use
22
62
  fetch('cannabis.medical_uses')
23
63
  end
24
64
 
65
+ # Produces a random health benefit.
66
+ #
67
+ # @return [String]
68
+ #
69
+ # @example
70
+ # Faker::Cannabis.health_benefit #=> "prevents infection"
71
+ #
72
+ # @faker.version 1.9.1
25
73
  def self.health_benefit
26
74
  fetch('cannabis.health_benefits')
27
75
  end
28
76
 
77
+ # Produces a random category.
78
+ #
79
+ # @return [String]
80
+ #
81
+ # @example
82
+ # Faker::Cannabis.category #=> "crystalline"
83
+ #
84
+ # @faker.version 1.9.1
29
85
  def self.category
30
86
  fetch('cannabis.categories')
31
87
  end
32
88
 
89
+ # Produces a random type.
90
+ #
91
+ # @return [String]
92
+ #
93
+ # @example
94
+ # Faker::Cannabis.type #=> "indica"
95
+ #
96
+ # @faker.version 1.9.1
33
97
  def self.type
34
98
  fetch('cannabis.types')
35
99
  end
36
100
 
101
+ # Produces a random buzzword.
102
+ #
103
+ # @return [String]
104
+ #
105
+ # @example
106
+ # Faker::Cannabis.buzzword #=> "high"
107
+ #
108
+ # @faker.version 1.9.1
37
109
  def self.buzzword
38
110
  fetch('cannabis.buzzwords')
39
111
  end
40
112
 
113
+ # Produces a random brand.
114
+ #
115
+ # @return [String]
116
+ #
117
+ # @example
118
+ # Faker::Cannabis.brand #=> "Cannavore Confections"
119
+ #
120
+ # @faker.version 1.9.1
41
121
  def self.brand
42
122
  fetch('cannabis.brands')
43
123
  end
@@ -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