faker 2.5.0 → 2.9.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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +163 -10
  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/bank.rb +13 -7
  7. data/lib/faker/default/beer.rb +72 -0
  8. data/lib/faker/default/bossa_nova.rb +18 -0
  9. data/lib/faker/default/business.rb +27 -0
  10. data/lib/faker/default/chuck_norris.rb +11 -1
  11. data/lib/faker/default/coffee.rb +45 -0
  12. data/lib/faker/default/coin.rb +18 -0
  13. data/lib/faker/default/color.rb +48 -1
  14. data/lib/faker/default/crypto.rb +27 -0
  15. data/lib/faker/default/currency.rb +27 -0
  16. data/lib/faker/default/date.rb +24 -0
  17. data/lib/faker/default/demographic.rb +57 -0
  18. data/lib/faker/default/driving_licence.rb +2 -2
  19. data/lib/faker/default/educator.rb +60 -6
  20. data/lib/faker/default/esport.rb +45 -0
  21. data/lib/faker/default/fillmurray.rb +23 -1
  22. data/lib/faker/default/food.rb +65 -1
  23. data/lib/faker/default/gender.rb +13 -0
  24. data/lib/faker/default/id_number.rb +29 -0
  25. data/lib/faker/default/internet.rb +17 -7
  26. data/lib/faker/default/job.rb +36 -0
  27. data/lib/faker/default/kpop.rb +54 -0
  28. data/lib/faker/default/relationship.rb +45 -0
  29. data/lib/faker/default/space.rb +127 -0
  30. data/lib/faker/default/team.rb +45 -0
  31. data/lib/faker/default/world_cup.rb +50 -0
  32. data/lib/faker/version.rb +1 -1
  33. data/lib/locales/en-CA.yml +1 -0
  34. data/lib/locales/en/educator.yml +69 -6
  35. data/lib/locales/en/gender.yml +1 -0
  36. data/lib/locales/en/overwatch.yml +2617 -32
  37. data/lib/locales/en/super_smash_bros.yml +1 -0
  38. data/lib/locales/fa.yml +2 -0
  39. data/lib/locales/fr-CA.yml +1 -1
  40. data/lib/locales/ja.yml +6 -2
  41. data/lib/locales/pt-BR.yml +23 -2
  42. metadata +22 -15
@@ -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
@@ -133,6 +133,30 @@ module Faker
133
133
  between(from: from, to: to).to_date
134
134
  end
135
135
 
136
+ ##
137
+ # Produces a date in the year and/or month specified.
138
+ #
139
+ # @param month [Integer] represents the month of the date
140
+ # @param year [Integer] represents the year of the date
141
+ # @return [Date]
142
+ #
143
+ # @example
144
+ # Faker::Date.in_date_period #=> #<Date: 2019-09-01>
145
+ #
146
+ # @example
147
+ # Faker::Date.in_date_period(year: 2018, month: 2) #=> #<Date: 2018-02-26>
148
+ #
149
+ # @example
150
+ # Faker::Date.in_date_period(month: 2) #=> #<Date: 2019-02-26>
151
+ #
152
+ # @faker.version next
153
+ def in_date_period(month: nil, year: ::Date.today.year)
154
+ from = ::Date.new(year, month || 1, 1)
155
+ to = ::Date.new(year, month || 12, ::Date.civil(year, month || 12, -1).day)
156
+
157
+ between(from: from, to: to).to_date
158
+ end
159
+
136
160
  private
137
161
 
138
162
  def birthday_date(date, age)
@@ -3,26 +3,83 @@
3
3
  module Faker
4
4
  class Demographic < Base
5
5
  class << self
6
+ ##
7
+ # Produces the name of a race.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Demographic.race #=> "Native Hawaiian or Other Pacific Islander"
13
+ #
14
+ # @faker.version 1.7.3
6
15
  def race
7
16
  fetch('demographic.race')
8
17
  end
9
18
 
19
+ ##
20
+ # Produces a level of educational attainment.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Demographic.educational_attainment #=> "GED or alternative credential"
26
+ #
27
+ # @faker.version 1.7.3
10
28
  def educational_attainment
11
29
  fetch('demographic.educational_attainment')
12
30
  end
13
31
 
32
+ ##
33
+ # Produces a denonym.
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Demographic.denonym #=> "Panamanian"
39
+ #
40
+ # @faker.version 1.7.3
14
41
  def demonym
15
42
  fetch('demographic.demonym')
16
43
  end
17
44
 
45
+ ##
46
+ # Produces a marital status.
47
+ #
48
+ # @return [String]
49
+ #
50
+ # @example
51
+ # Faker::Demographic.marital_status #=> "Widowed"
52
+ #
53
+ # @faker.version 1.7.3
18
54
  def marital_status
19
55
  fetch('demographic.marital_status')
20
56
  end
21
57
 
58
+ ##
59
+ # Produces a sex for demographic purposes.
60
+ #
61
+ # @return [String]
62
+ #
63
+ # @example
64
+ # Faker::Demographic.sex #=> "Female"
65
+ #
66
+ # @faker.version 1.7.3
22
67
  def sex
23
68
  fetch('demographic.sex')
24
69
  end
25
70
 
71
+ ##
72
+ # Produces a height as a string.
73
+ #
74
+ # @param unit [Symbol] either `:metric` or `imperial`.
75
+ # @return [String]
76
+ #
77
+ # @example
78
+ # Faker::Demographic.height #=> "1.61"
79
+ # @example
80
+ # Faker::Demographic.height(unit: :imperial) #=> "6 ft, 2 in"
81
+ #
82
+ # @faker.version 1.7.3
26
83
  def height(legacy_unit = NOT_GIVEN, unit: :metric)
27
84
  warn_for_deprecated_arguments do |keywords|
28
85
  keywords << :unit if legacy_unit != NOT_GIVEN
@@ -52,9 +52,9 @@ module Faker
52
52
  year = dob.year % 10
53
53
  month = gender == :female ? dob.month + 50 : dob.month
54
54
  # Rubocop's preferred formatting is pretty gory
55
- # rubocop:disable FormatString
55
+ # rubocop:disable Style/FormatString
56
56
  "#{decade}#{'%02d' % month}#{'%02d' % dob.day}#{year}"
57
- # rubocop:enable FormatString
57
+ # rubocop:enable Style/FormatString
58
58
  end
59
59
 
60
60
  def gb_licence_checksum
@@ -5,30 +5,84 @@ module Faker
5
5
  flexible :educator
6
6
 
7
7
  class << self
8
+ ##
9
+ # Produces a university name.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::Educator.university #=> "Mallowtown Technical College"
15
+ #
16
+ # @faker.version 1.6.4
8
17
  def university
9
- "#{parse('educator.name')} #{fetch('educator.tertiary.type')}"
18
+ parse('educator.university')
10
19
  end
11
20
 
21
+ ##
22
+ # Produces a university degree.
23
+ #
24
+ # @return [String]
25
+ #
26
+ # @example
27
+ # Faker::Educator.degree #=> "Associate Degree in Criminology"
28
+ #
29
+ # @faker.version 1.9.2
12
30
  def degree
13
- "#{fetch('educator.tertiary.degree.type')} #{fetch('educator.tertiary.degree.subject')}"
31
+ parse('educator.degree')
14
32
  end
15
33
 
16
34
  alias course degree
17
35
 
36
+ ##
37
+ # Produces a university subject.
38
+ #
39
+ # @return [String]
40
+ #
41
+ # @example
42
+ # Faker::Educator.subject #=> "Criminology"
43
+ #
44
+ # @faker.version 1.9.2
18
45
  def subject
19
- fetch('educator.tertiary.degree.subject')
46
+ fetch('educator.subject')
20
47
  end
21
48
 
49
+ ##
50
+ # Produces a course name.
51
+ #
52
+ # @return [String]
53
+ #
54
+ # @example
55
+ # Faker::Educator.course_name #=> "Criminology 101"
56
+ #
57
+ # @faker.version 1.9.2
22
58
  def course_name
23
- "#{fetch('educator.tertiary.degree.subject')} #{numerify(fetch('educator.tertiary.degree.course_number'))}"
59
+ numerify(parse('educator.course_name'))
24
60
  end
25
61
 
62
+ ##
63
+ # Produces a secondary school.
64
+ #
65
+ # @return [String]
66
+ #
67
+ # @example
68
+ # Faker::Educator.secondary_school #=> "Iceborough Secondary College"
69
+ #
70
+ # @faker.version 1.6.4
26
71
  def secondary_school
27
- "#{parse('educator.name')} #{fetch('educator.secondary')}"
72
+ parse('educator.secondary_school')
28
73
  end
29
74
 
75
+ ##
76
+ # Produces a campus name.
77
+ #
78
+ # @return [String]
79
+ #
80
+ # @example
81
+ # Faker::Educator.campus #=> "Vertapple Campus"
82
+ #
83
+ # @faker.version 1.6.4
30
84
  def campus
31
- "#{parse('educator.name')} Campus"
85
+ parse('educator.campus')
32
86
  end
33
87
  end
34
88
  end
@@ -3,22 +3,67 @@
3
3
  module Faker
4
4
  class Esport < Base
5
5
  class << self
6
+ ##
7
+ # Produces the name of a professional eSports player.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Esport.player #=> "Crimsix"
13
+ #
14
+ # @faker.version 1.7.0
6
15
  def player
7
16
  fetch('esport.players')
8
17
  end
9
18
 
19
+ ##
20
+ # Produces the name of an eSports team.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Esport.team #=> "CLG"
26
+ #
27
+ # @faker.version 1.7.0
10
28
  def team
11
29
  fetch('esport.teams')
12
30
  end
13
31
 
32
+ ##
33
+ # Produces the name of an eSports league.
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Esport.league #=> "IEM"
39
+ #
40
+ # @faker.version 1.7.0
14
41
  def league
15
42
  fetch('esport.leagues')
16
43
  end
17
44
 
45
+ ##
46
+ # Produces the name of an eSports event.
47
+ #
48
+ # @return [String]
49
+ #
50
+ # @example
51
+ # Faker::Esport.event #=> "ESL Cologne"
52
+ #
53
+ # @faker.version 1.7.0
18
54
  def event
19
55
  fetch('esport.events')
20
56
  end
21
57
 
58
+ ##
59
+ # Produces the name of a game played as an eSport.
60
+ #
61
+ # @return [String]
62
+ #
63
+ # @example
64
+ # Faker::Esport.game #=> "Dota 2"
65
+ #
66
+ # @faker.version 1.7.0
22
67
  def game
23
68
  fetch('esport.games')
24
69
  end
@@ -4,8 +4,29 @@ module Faker
4
4
  class Fillmurray < Base
5
5
  class << self
6
6
  # rubocop:disable Metrics/ParameterLists
7
+
8
+ ##
9
+ # Produces the URL of an image from Fill Murray, a site which hosts
10
+ # exclusively photographs of actor Bill Murray.
11
+ #
12
+ # @param grayscale [Boolean] Whether to return a grayscale image.
13
+ # @param width [Integer] The iamage width.
14
+ # @param height [Integer] The image height.
15
+ # @return [String]
16
+ #
17
+ # @example
18
+ # Faker::Fillmurray.image #=> "https://www.fillmurray.com/300/300"
19
+ #
20
+ # @example
21
+ # Faker::Fillmurray.image(grayscale: true)
22
+ # #=> "https://fillmurray.com/g/300/300"
23
+ #
24
+ # @example
25
+ # Faker::Fillmurray.image(grayscale: false, width: 200, height: 400)
26
+ # #=> "https://fillmurray.com/200/400"
27
+ #
28
+ # @faker.version 1.7.1
7
29
  def image(legacy_grayscale = NOT_GIVEN, legacy_width = NOT_GIVEN, legacy_height = NOT_GIVEN, grayscale: false, width: 200, height: 200)
8
- # rubocop:enable Metrics/ParameterLists
9
30
  warn_for_deprecated_arguments do |keywords|
10
31
  keywords << :grayscale if legacy_grayscale != NOT_GIVEN
11
32
  keywords << :width if legacy_width != NOT_GIVEN
@@ -18,6 +39,7 @@ module Faker
18
39
 
19
40
  "https://www.fillmurray.com#{'/g' if grayscale == true}/#{width}/#{height}"
20
41
  end
42
+ # rubocop:enable Metrics/ParameterLists
21
43
  end
22
44
  end
23
45
  end
@@ -5,42 +5,106 @@ module Faker
5
5
  flexible :food
6
6
 
7
7
  class << self
8
- # Retrieves a typical dish from each country
8
+ ##
9
+ # Retrieves a typical dish from each country.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::Food.dish #=> "Feijoada"
15
+ #
16
+ # @faker.version 1.8.0
9
17
  def dish
10
18
  fetch('food.dish')
11
19
  end
12
20
 
21
+ ##
13
22
  # Retrieves a description about some dish
23
+ #
24
+ # @return [String]
25
+ #
26
+ # @example
27
+ # Faker::Food.description #=> "Breaded fried chicken with waffles. Served with maple syrup."
28
+ #
29
+ # @faker.version 1.9.0
14
30
  def description
15
31
  fetch('food.descriptions')
16
32
  end
17
33
 
34
+ ##
18
35
  # Retrieves an ingredient
36
+ #
37
+ # @return [String]
38
+ #
39
+ # @example
40
+ # Faker::Food.ingredient #=> "Olives"
41
+ #
42
+ # @faker.version 1.7.0
19
43
  def ingredient
20
44
  fetch('food.ingredients')
21
45
  end
22
46
 
47
+ ##
23
48
  # Retrieves a fruit
49
+ #
50
+ # @return [String]
51
+ #
52
+ # @example
53
+ # Faker::Food.fruits #=> "Papaya"
54
+ #
55
+ # @faker.version 1.9.0
24
56
  def fruits
25
57
  fetch('food.fruits')
26
58
  end
27
59
 
60
+ ##
28
61
  # Retrieves a vegetable
62
+ #
63
+ # @return [String]
64
+ #
65
+ # @example
66
+ # Faker::Food.vegetables #=> "Broccolini"
67
+ #
68
+ # @faker.version 1.9.0
29
69
  def vegetables
30
70
  fetch('food.vegetables')
31
71
  end
32
72
 
73
+ ##
33
74
  # Retrieves some random spice
75
+ #
76
+ # @return [String]
77
+ #
78
+ # @example
79
+ # Faker::Food.spice #=> "Garlic Chips"
80
+ #
81
+ # @faker.version 1.7.0
34
82
  def spice
35
83
  fetch('food.spices')
36
84
  end
37
85
 
86
+ ##
38
87
  # Retrieves cooking measures
88
+ #
89
+ # @return [String]
90
+ #
91
+ # @example
92
+ # Faker::Food.measurement #=> "1/3"
93
+ #
94
+ # @faker.version 1.7.0
39
95
  def measurement
40
96
  fetch('food.measurement_sizes') + ' ' + fetch('food.measurements')
41
97
  end
42
98
 
99
+ ##
43
100
  # Retrieves metric mesurements
101
+ #
102
+ # @return [String]
103
+ #
104
+ # @example
105
+ # Faker::Food.metric_measurement #=> "centiliter"
106
+ #
107
+ # @faker.version 1.8.3
44
108
  def metric_measurement
45
109
  fetch('food.metric_measurements')
46
110
  end