faker 2.1.0 → 2.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +93 -3
  3. data/README.md +3 -3
  4. data/lib/faker.rb +56 -1
  5. data/lib/faker/blockchain/tezos.rb +6 -6
  6. data/lib/faker/books/dune.rb +10 -2
  7. data/lib/faker/books/lovecraft.rb +38 -7
  8. data/lib/faker/default/address.rb +25 -5
  9. data/lib/faker/default/alphanumeric.rb +39 -7
  10. data/lib/faker/default/app.rb +9 -1
  11. data/lib/faker/default/avatar.rb +11 -1
  12. data/lib/faker/default/bank.rb +10 -2
  13. data/lib/faker/default/boolean.rb +5 -1
  14. data/lib/faker/default/chile_rut.rb +12 -2
  15. data/lib/faker/default/code.rb +16 -3
  16. data/lib/faker/default/commerce.rb +17 -3
  17. data/lib/faker/default/company.rb +10 -2
  18. data/lib/faker/default/crypto_coin.rb +15 -3
  19. data/lib/faker/default/date.rb +37 -5
  20. data/lib/faker/default/demographic.rb +5 -1
  21. data/lib/faker/default/driving_licence.rb +10 -4
  22. data/lib/faker/default/file.rb +19 -2
  23. data/lib/faker/default/fillmurray.rb +9 -1
  24. data/lib/faker/default/finance.rb +5 -1
  25. data/lib/faker/default/hipster.rb +45 -6
  26. data/lib/faker/default/id_number.rb +48 -3
  27. data/lib/faker/default/internet.rb +89 -13
  28. data/lib/faker/default/invoice.rb +16 -3
  29. data/lib/faker/default/json.rb +19 -2
  30. data/lib/faker/default/lorem.rb +80 -10
  31. data/lib/faker/default/lorem_flickr.rb +38 -5
  32. data/lib/faker/default/lorem_pixel.rb +10 -1
  33. data/lib/faker/default/markdown.rb +6 -1
  34. data/lib/faker/default/measurement.rb +40 -8
  35. data/lib/faker/default/name.rb +5 -1
  36. data/lib/faker/default/nhs.rb +5 -1
  37. data/lib/faker/default/number.rb +56 -11
  38. data/lib/faker/default/omniauth.rb +50 -9
  39. data/lib/faker/default/phone_number.rb +5 -1
  40. data/lib/faker/default/placeholdit.rb +11 -1
  41. data/lib/faker/default/relationship.rb +5 -1
  42. data/lib/faker/default/source.rb +18 -3
  43. data/lib/faker/default/string.rb +5 -1
  44. data/lib/faker/default/stripe.rb +20 -4
  45. data/lib/faker/default/time.rb +37 -4
  46. data/lib/faker/default/twitter.rb +32 -18
  47. data/lib/faker/default/types.rb +27 -5
  48. data/lib/faker/default/vehicle.rb +17 -4
  49. data/lib/faker/default/world_cup.rb +11 -2
  50. data/lib/faker/games/dota.rb +5 -1
  51. data/lib/faker/movies/star_wars.rb +6 -4
  52. data/lib/faker/version.rb +1 -1
  53. data/lib/locales/en.yml +0 -49
  54. data/lib/locales/en/science.yml +1 -1
  55. metadata +18 -18
@@ -5,7 +5,17 @@ module Faker
5
5
  class << self
6
6
  SUPPORTED_FORMATS = %w[png jpg gif jpeg].freeze
7
7
 
8
- def image(size: '300x300', format: 'png', background_color: nil, text_color: nil, text: nil)
8
+ # rubocop:disable Metrics/ParameterLists
9
+ 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)
10
+ # rubocop:enable Metrics/ParameterLists
11
+ warn_for_deprecated_arguments do |keywords|
12
+ keywords << :size if legacy_size != NOT_GIVEN
13
+ keywords << :format if legacy_format != NOT_GIVEN
14
+ keywords << :background_color if legacy_background_color != NOT_GIVEN
15
+ keywords << :text_color if legacy_text_color != NOT_GIVEN
16
+ keywords << :text if legacy_text != NOT_GIVEN
17
+ end
18
+
9
19
  background_color = generate_color if background_color == :random
10
20
  text_color = generate_color if text_color == :random
11
21
 
@@ -5,7 +5,11 @@ module Faker
5
5
  flexible :relationship
6
6
 
7
7
  class << self
8
- def familial(connection: nil)
8
+ def familial(legacy_connection = NOT_GIVEN, connection: nil)
9
+ warn_for_deprecated_arguments do |keywords|
10
+ keywords << :connection if legacy_connection != NOT_GIVEN
11
+ end
12
+
9
13
  familial_connections = translate('faker.relationship.familial').keys
10
14
 
11
15
  if connection.nil?
@@ -3,16 +3,31 @@
3
3
  module Faker
4
4
  class Source < Base
5
5
  class << self
6
- def hello_world(lang: :ruby)
6
+ def hello_world(legacy_lang = NOT_GIVEN, lang: :ruby)
7
+ warn_for_deprecated_arguments do |keywords|
8
+ keywords << :lang if legacy_lang != NOT_GIVEN
9
+ end
10
+
7
11
  fetch("source.hello_world.#{lang}")
8
12
  end
9
13
 
10
- def print(str: 'some string', lang: :ruby)
14
+ def print(legacy_str = NOT_GIVEN, legacy_lang = NOT_GIVEN, str: 'some string', lang: :ruby)
15
+ warn_for_deprecated_arguments do |keywords|
16
+ keywords << :str if legacy_str != NOT_GIVEN
17
+ end
18
+ warn_for_deprecated_arguments do |keywords|
19
+ keywords << :lang if legacy_lang != NOT_GIVEN
20
+ end
21
+
11
22
  code = fetch("source.print.#{lang}")
12
23
  code.gsub('faker_string_to_print', str)
13
24
  end
14
25
 
15
- def print_1_to_10(lang: :ruby)
26
+ def print_1_to_10(legacy_lang = NOT_GIVEN, lang: :ruby)
27
+ warn_for_deprecated_arguments do |keywords|
28
+ keywords << :lang if legacy_lang != NOT_GIVEN
29
+ end
30
+
16
31
  fetch("source.print_1_to_10.#{lang}")
17
32
  end
18
33
  end
@@ -3,7 +3,11 @@
3
3
  module Faker
4
4
  class String < Base
5
5
  class << self
6
- def random(length: 32)
6
+ def random(legacy_length = NOT_GIVEN, length: 32)
7
+ warn_for_deprecated_arguments do |keywords|
8
+ keywords << :length if legacy_length != NOT_GIVEN
9
+ end
10
+
7
11
  utf8string select_a length
8
12
  end
9
13
 
@@ -3,7 +3,11 @@
3
3
  module Faker
4
4
  class Stripe < Base
5
5
  class << self
6
- def valid_card(card_type: nil)
6
+ def valid_card(legacy_card_type = NOT_GIVEN, card_type: nil)
7
+ warn_for_deprecated_arguments do |keywords|
8
+ keywords << :card_type if legacy_card_type != NOT_GIVEN
9
+ end
10
+
7
11
  valid_cards = translate('faker.stripe.valid_cards').keys
8
12
 
9
13
  if card_type.nil?
@@ -18,7 +22,11 @@ module Faker
18
22
  fetch('stripe.valid_cards.' + card_type)
19
23
  end
20
24
 
21
- def valid_token(card_type: nil)
25
+ def valid_token(legacy_card_type = NOT_GIVEN, card_type: nil)
26
+ warn_for_deprecated_arguments do |keywords|
27
+ keywords << :card_type if legacy_card_type != NOT_GIVEN
28
+ end
29
+
22
30
  valid_tokens = translate('faker.stripe.valid_tokens').keys
23
31
 
24
32
  if card_type.nil?
@@ -33,7 +41,11 @@ module Faker
33
41
  fetch('stripe.valid_tokens.' + card_type)
34
42
  end
35
43
 
36
- def invalid_card(card_error: nil)
44
+ def invalid_card(legacy_card_error = NOT_GIVEN, card_error: nil)
45
+ warn_for_deprecated_arguments do |keywords|
46
+ keywords << :card_error if legacy_card_error != NOT_GIVEN
47
+ end
48
+
37
49
  invalid_cards = translate('faker.stripe.invalid_cards').keys
38
50
 
39
51
  if card_error.nil?
@@ -57,7 +69,11 @@ module Faker
57
69
  rand_in_range(start_year, start_year + 5).to_s
58
70
  end
59
71
 
60
- def ccv(card_type: nil)
72
+ def ccv(legacy_card_type = NOT_GIVEN, card_type: nil)
73
+ warn_for_deprecated_arguments do |keywords|
74
+ keywords << :card_type if legacy_card_type != NOT_GIVEN
75
+ end
76
+
61
77
  (card_type.to_s == 'amex' ? rand_in_range(1000, 9999) : rand_in_range(100, 999)).to_s
62
78
  end
63
79
  end
@@ -13,7 +13,15 @@ module Faker
13
13
  }.freeze
14
14
 
15
15
  class << self
16
- def between(from:, to:, format: nil)
16
+ # rubocop:disable Metrics/ParameterLists
17
+ def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_format = NOT_GIVEN, from:, to:, format: nil)
18
+ # rubocop:enable Metrics/ParameterLists
19
+ warn_for_deprecated_arguments do |keywords|
20
+ keywords << :from if legacy_from != NOT_GIVEN
21
+ keywords << :to if legacy_to != NOT_GIVEN
22
+ keywords << :format if legacy_format != NOT_GIVEN
23
+ end
24
+
17
25
  from = get_time_object(from)
18
26
  to = get_time_object(to)
19
27
 
@@ -21,17 +29,42 @@ module Faker
21
29
  time_with_format(time, format)
22
30
  end
23
31
 
24
- def between_dates(from:, to:, period: :all, format: nil)
32
+ # rubocop:disable Metrics/ParameterLists
33
+ def between_dates(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_period = NOT_GIVEN, legacy_format = NOT_GIVEN, from:, to:, period: :all, format: nil)
34
+ # rubocop:enable Metrics/ParameterLists
35
+ warn_for_deprecated_arguments do |keywords|
36
+ keywords << :from if legacy_from != NOT_GIVEN
37
+ keywords << :to if legacy_to != NOT_GIVEN
38
+ keywords << :period if legacy_period != NOT_GIVEN
39
+ keywords << :format if legacy_format != NOT_GIVEN
40
+ end
41
+
25
42
  date = Faker::Date.between(from: from, to: to)
26
43
  time = date_with_random_time(date, period)
27
44
  time_with_format(time, format)
28
45
  end
29
46
 
30
- def forward(days: 365, period: :all, format: nil)
47
+ # rubocop:disable Metrics/ParameterLists
48
+ def forward(legacy_days = NOT_GIVEN, legacy_period = NOT_GIVEN, legacy_format = NOT_GIVEN, days: 365, period: :all, format: nil)
49
+ # rubocop:enable Metrics/ParameterLists
50
+ warn_for_deprecated_arguments do |keywords|
51
+ keywords << :days if legacy_days != NOT_GIVEN
52
+ keywords << :period if legacy_period != NOT_GIVEN
53
+ keywords << :format if legacy_format != NOT_GIVEN
54
+ end
55
+
31
56
  time_with_format(date_with_random_time(Faker::Date.forward(days: days), period), format)
32
57
  end
33
58
 
34
- def backward(days: 365, period: :all, format: nil)
59
+ # rubocop:disable Metrics/ParameterLists
60
+ def backward(legacy_days = NOT_GIVEN, legacy_period = NOT_GIVEN, legacy_format = NOT_GIVEN, days: 365, period: :all, format: nil)
61
+ # rubocop:enable Metrics/ParameterLists
62
+ warn_for_deprecated_arguments do |keywords|
63
+ keywords << :days if legacy_days != NOT_GIVEN
64
+ keywords << :period if legacy_period != NOT_GIVEN
65
+ keywords << :format if legacy_format != NOT_GIVEN
66
+ end
67
+
35
68
  time_with_format(date_with_random_time(Faker::Date.backward(days: days), period), format)
36
69
  end
37
70
 
@@ -3,7 +3,12 @@
3
3
  module Faker
4
4
  class Twitter < Base
5
5
  class << self
6
- def user(include_status: true, include_email: false)
6
+ def user(legacy_include_status = NOT_GIVEN, legacy_include_email = NOT_GIVEN, include_status: true, include_email: false)
7
+ warn_for_deprecated_arguments do |keywords|
8
+ keywords << :include_status if legacy_include_status != NOT_GIVEN
9
+ keywords << :include_email if legacy_include_email != NOT_GIVEN
10
+ end
11
+
7
12
  user_id = id
8
13
  background_image_url = Faker::LoremPixel.image(size: '600x400') # TODO: Make the dimensions change
9
14
  profile_image_url = Faker::Avatar.image(slug: user_id, size: '48x48')
@@ -15,7 +20,7 @@ module Faker
15
20
  default_profile_image: Faker::Boolean.boolean(true_ratio: 0.1),
16
21
  default_profile: Faker::Boolean.boolean(true_ratio: 0.1),
17
22
  description: Faker::Lorem.sentence,
18
- entities: user_entities,
23
+ entities: user_entities,
19
24
  favourites_count: Faker::Number.between(to: 1, from: 100_000),
20
25
  follow_request_sent: false,
21
26
  followers_count: Faker::Number.between(to: 1, from: 10_000_000),
@@ -54,7 +59,12 @@ module Faker
54
59
  user
55
60
  end
56
61
 
57
- def status(include_user: true, include_photo: false)
62
+ def status(legacy_include_user = NOT_GIVEN, legacy_include_photo = NOT_GIVEN, include_user: true, include_photo: false)
63
+ warn_for_deprecated_arguments do |keywords|
64
+ keywords << :include_user if legacy_include_user != NOT_GIVEN
65
+ keywords << :include_photo if legacy_include_photo != NOT_GIVEN
66
+ end
67
+
58
68
  status_id = id
59
69
  status = {
60
70
  id: status_id,
@@ -62,7 +72,7 @@ module Faker
62
72
  contributors: nil,
63
73
  coordinates: nil,
64
74
  created_at: created_at,
65
- entities: status_entities(include_photo: include_photo),
75
+ entities: status_entities(include_photo: include_photo),
66
76
  favorite_count: Faker::Number.between(to: 1, from: 10_000),
67
77
  favorited: false,
68
78
  geo: nil,
@@ -76,7 +86,7 @@ module Faker
76
86
  place: nil,
77
87
  possibly_sensitive: Faker::Boolean.boolean(true_ratio: 0.1),
78
88
  retweet_count: Faker::Number.between(to: 1, from: 10_000),
79
- retweeted_status: nil,
89
+ retweeted_status: nil,
80
90
  retweeted: false,
81
91
  source: "<a href=\"#{Faker::Internet.url(host: 'example.com')}\" rel=\"nofollow\">#{Faker::Company.name}</a>",
82
92
  text: Faker::Lorem.sentence,
@@ -107,21 +117,25 @@ module Faker
107
117
 
108
118
  def user_entities
109
119
  {
110
- url: {
120
+ url: {
111
121
  urls: []
112
122
  },
113
- description: {
123
+ description: {
114
124
  urls: []
115
125
  }
116
126
  }
117
127
  end
118
128
 
119
- def status_entities(include_photo: false)
129
+ def status_entities(legacy_include_photo = NOT_GIVEN, include_photo: false)
130
+ warn_for_deprecated_arguments do |keywords|
131
+ keywords << :include_photo if legacy_include_photo != NOT_GIVEN
132
+ end
133
+
120
134
  entities = {
121
- hashtags: [],
122
- symbols: [],
123
- user_mentions: [],
124
- urls: []
135
+ hashtags: [],
136
+ symbols: [],
137
+ user_mentions: [],
138
+ urls: []
125
139
  }
126
140
  entities[:media] = [photo_entity] if include_photo
127
141
  entities
@@ -135,7 +149,7 @@ module Faker
135
149
  {
136
150
  id: media_id,
137
151
  id_str: media_id.to_s,
138
- indices: [
152
+ indices: [
139
153
  103,
140
154
  126
141
155
  ],
@@ -145,23 +159,23 @@ module Faker
145
159
  display_url: 'example.com',
146
160
  expanded_url: Faker::Internet.url(host: 'example.com'),
147
161
  type: 'photo',
148
- sizes: {
149
- medium: {
162
+ sizes: {
163
+ medium: {
150
164
  w: 1064,
151
165
  h: 600,
152
166
  resize: 'fit'
153
167
  },
154
- large: {
168
+ large: {
155
169
  w: 1064,
156
170
  h: 600,
157
171
  resize: 'fit'
158
172
  },
159
- small: {
173
+ small: {
160
174
  w: 680,
161
175
  h: 383,
162
176
  resize: 'fit'
163
177
  },
164
- thumb: {
178
+ thumb: {
165
179
  w: 150,
166
180
  h: 150,
167
181
  resize: 'crop'
@@ -7,7 +7,11 @@ module Faker
7
7
  COMPLEX_TYPES = %i[hash array].freeze
8
8
 
9
9
  class << self
10
- def rb_string(words: 1)
10
+ def rb_string(legacy_words = NOT_GIVEN, words: 1)
11
+ warn_for_deprecated_arguments do |keywords|
12
+ keywords << :words if legacy_words != NOT_GIVEN
13
+ end
14
+
11
15
  resolved_num = resolve(words)
12
16
  word_list =
13
17
  translate('faker.lorem.words')
@@ -20,11 +24,21 @@ module Faker
20
24
  sample(CHARACTERS)
21
25
  end
22
26
 
23
- def rb_integer(from: 0, to: 100)
27
+ def rb_integer(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 0, to: 100)
28
+ warn_for_deprecated_arguments do |keywords|
29
+ keywords << :from if legacy_from != NOT_GIVEN
30
+ keywords << :to if legacy_to != NOT_GIVEN
31
+ end
32
+
24
33
  rand(from..to).to_i
25
34
  end
26
35
 
27
- def rb_hash(number: 1, type: random_type)
36
+ def rb_hash(legacy_number = NOT_GIVEN, legacy_type = NOT_GIVEN, number: 1, type: random_type)
37
+ warn_for_deprecated_arguments do |keywords|
38
+ keywords << :number if legacy_number != NOT_GIVEN
39
+ keywords << :type if legacy_type != NOT_GIVEN
40
+ end
41
+
28
42
  {}.tap do |hsh|
29
43
  Lorem.words(number: number * 2).uniq.first(number).each do |s|
30
44
  hsh.merge!(s.to_sym => type)
@@ -32,11 +46,19 @@ module Faker
32
46
  end
33
47
  end
34
48
 
35
- def complex_rb_hash(number: 1)
49
+ def complex_rb_hash(legacy_number = NOT_GIVEN, number: 1)
50
+ warn_for_deprecated_arguments do |keywords|
51
+ keywords << :number if legacy_number != NOT_GIVEN
52
+ end
53
+
36
54
  rb_hash(number: number, type: random_complex_type)
37
55
  end
38
56
 
39
- def rb_array(len: 1)
57
+ def rb_array(legacy_len = NOT_GIVEN, len: 1)
58
+ warn_for_deprecated_arguments do |keywords|
59
+ keywords << :len if legacy_len != NOT_GIVEN
60
+ end
61
+
40
62
  [].tap do |ar|
41
63
  len.times do
42
64
  ar.push random_type
@@ -9,7 +9,7 @@ module Faker
9
9
  VIN_LETTERS = 'ABCDEFGHJKLMNPRSTUVWXYZ'
10
10
  VIN_MAP = '0123456789X'
11
11
  VIN_WEIGHTS = '8765432X098765432'
12
- VIN_REGEX = /^[A-Z0-9]{3}[A-Z0-9]{5}[A-Z0-9]{1}[A-Z0-9]{1}[A-Z0-0]{1}[A-Z0-9]{1}\d{5}$/
12
+ VIN_REGEX = /^[A-Z0-9]{3}[A-Z0-9]{5}[A-Z0-9]{1}[A-Z0-9]{1}[A-Z0-0]{1}[A-Z0-9]{1}\d{5}$/.freeze
13
13
  SG_CHECKSUM_WEIGHTS = [3, 14, 2, 12, 2, 11, 1].freeze
14
14
  SG_CHECKSUM_CHARS = 'AYUSPLJGDBZXTRMKHEC'
15
15
 
@@ -26,7 +26,11 @@ module Faker
26
26
  fetch('vehicle.makes')
27
27
  end
28
28
 
29
- def model(make_of_model: '')
29
+ def model(legacy_make_of_model = NOT_GIVEN, make_of_model: '')
30
+ warn_for_deprecated_arguments do |keywords|
31
+ keywords << :make_of_model if legacy_make_of_model != NOT_GIVEN
32
+ end
33
+
30
34
  return fetch("vehicle.models_by_make.#{make}") if make_of_model.empty?
31
35
 
32
36
  fetch("vehicle.models_by_make.#{make_of_model}")
@@ -85,13 +89,22 @@ module Faker
85
89
  Faker::Time.backward(days: rand_in_range(365, 5475), period: :all, format: '%Y').to_i
86
90
  end
87
91
 
88
- def mileage(min: MILEAGE_MIN, max: MILEAGE_MAX)
92
+ def mileage(legacy_min = NOT_GIVEN, legacy_max = NOT_GIVEN, min: MILEAGE_MIN, max: MILEAGE_MAX)
93
+ warn_for_deprecated_arguments do |keywords|
94
+ keywords << :min if legacy_min != NOT_GIVEN
95
+ keywords << :max if legacy_max != NOT_GIVEN
96
+ end
97
+
89
98
  rand_in_range(min, max)
90
99
  end
91
100
 
92
101
  alias kilometrage mileage
93
102
 
94
- def license_plate(state_abreviation: '')
103
+ def license_plate(legacy_state_abreviation = NOT_GIVEN, state_abreviation: '')
104
+ warn_for_deprecated_arguments do |keywords|
105
+ keywords << :state_abreviation if legacy_state_abreviation != NOT_GIVEN
106
+ end
107
+
95
108
  return regexify(bothify(fetch('vehicle.license_plate'))) if state_abreviation.empty?
96
109
 
97
110
  key = 'vehicle.license_plate_by_state.' + state_abreviation
@@ -15,11 +15,20 @@ module Faker
15
15
  fetch('world_cup.stadiums')
16
16
  end
17
17
 
18
- def group(group: 'group_A')
18
+ def group(legacy_group = NOT_GIVEN, group: 'group_A')
19
+ warn_for_deprecated_arguments do |keywords|
20
+ keywords << :group if legacy_group != NOT_GIVEN
21
+ end
22
+
19
23
  fetch("world_cup.groups.#{group}")
20
24
  end
21
25
 
22
- def roster(country: 'Egypt', type: 'coach')
26
+ def roster(legacy_country = NOT_GIVEN, legacy_type = NOT_GIVEN, country: 'Egypt', type: 'coach')
27
+ warn_for_deprecated_arguments do |keywords|
28
+ keywords << :country if legacy_country != NOT_GIVEN
29
+ keywords << :type if legacy_type != NOT_GIVEN
30
+ end
31
+
23
32
  fetch("world_cup.rosters.#{country}.#{type}")
24
33
  end
25
34
  end
@@ -20,7 +20,11 @@ module Faker
20
20
  fetch('games.dota.player')
21
21
  end
22
22
 
23
- def quote(hero: 'abaddon')
23
+ def quote(legacy_hero = NOT_GIVEN, hero: 'abaddon')
24
+ warn_for_deprecated_arguments do |keywords|
25
+ keywords << :hero if legacy_hero != NOT_GIVEN
26
+ end
27
+
24
28
  fetch("games.dota.#{hero}.quote")
25
29
  end
26
30
  end