faker 2.0.0 → 2.2.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +72 -1
- data/README.md +3 -3
- data/lib/faker.rb +22 -1
- data/lib/faker/books/dune.rb +12 -2
- data/lib/faker/books/lovecraft.rb +54 -7
- data/lib/faker/default/address.rb +30 -5
- data/lib/faker/default/alphanumeric.rb +45 -7
- data/lib/faker/default/app.rb +16 -1
- data/lib/faker/default/avatar.rb +24 -1
- data/lib/faker/default/bank.rb +12 -2
- data/lib/faker/default/boolean.rb +6 -1
- data/lib/faker/default/chile_rut.rb +20 -2
- data/lib/faker/default/code.rb +22 -3
- data/lib/faker/default/commerce.rb +26 -3
- data/lib/faker/default/company.rb +12 -2
- data/lib/faker/default/crypto_coin.rb +18 -3
- data/lib/faker/default/date.rb +48 -5
- data/lib/faker/default/demographic.rb +6 -1
- data/lib/faker/default/driving_licence.rb +20 -4
- data/lib/faker/default/file.rb +36 -2
- data/lib/faker/default/fillmurray.rb +16 -1
- data/lib/faker/default/finance.rb +6 -1
- data/lib/faker/default/hipster.rb +78 -6
- data/lib/faker/default/id_number.rb +50 -3
- data/lib/faker/default/internet.rb +124 -13
- data/lib/faker/default/invoice.rb +22 -3
- data/lib/faker/default/json.rb +26 -2
- data/lib/faker/default/lorem.rb +120 -10
- data/lib/faker/default/lorem_flickr.rb +69 -5
- data/lib/faker/default/lorem_pixel.rb +26 -1
- data/lib/faker/default/markdown.rb +10 -1
- data/lib/faker/default/measurement.rb +48 -8
- data/lib/faker/default/name.rb +6 -1
- data/lib/faker/default/nhs.rb +6 -1
- data/lib/faker/default/number.rb +81 -11
- data/lib/faker/default/omniauth.rb +84 -5
- data/lib/faker/default/phone_number.rb +6 -1
- data/lib/faker/default/placeholdit.rb +24 -1
- data/lib/faker/default/relationship.rb +6 -1
- data/lib/faker/default/source.rb +22 -3
- data/lib/faker/default/string.rb +6 -1
- data/lib/faker/default/stripe.rb +24 -4
- data/lib/faker/default/time.rb +68 -4
- data/lib/faker/default/twitter.rb +26 -3
- data/lib/faker/default/types.rb +38 -5
- data/lib/faker/default/vehicle.rb +22 -3
- data/lib/faker/default/world_cup.rb +16 -2
- data/lib/faker/games/dota.rb +6 -1
- data/lib/faker/movies/star_wars.rb +6 -1
- data/lib/faker/version.rb +1 -1
- data/lib/locales/en.yml +0 -47
- metadata +11 -11
@@ -3,7 +3,22 @@
|
|
3
3
|
module Faker
|
4
4
|
class Fillmurray < Base
|
5
5
|
class << self
|
6
|
-
|
6
|
+
# rubocop:disable Metrics/ParameterLists
|
7
|
+
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
|
+
if legacy_grayscale != NOT_GIVEN
|
10
|
+
warn_with_uplevel 'Passing `grayscale` with the 1st argument of `Fillmurray.image` is deprecated. Use keyword argument like `Fillmurray.image(grayscale: ...)` instead.', uplevel: 1
|
11
|
+
grayscale = legacy_grayscale
|
12
|
+
end
|
13
|
+
if legacy_width != NOT_GIVEN
|
14
|
+
warn_with_uplevel 'Passing `width` with the 2nd argument of `Fillmurray.image` is deprecated. Use keyword argument like `Fillmurray.image(width: ...)` instead.', uplevel: 1
|
15
|
+
width = legacy_width
|
16
|
+
end
|
17
|
+
if legacy_height != NOT_GIVEN
|
18
|
+
warn_with_uplevel 'Passing `height` with the 3rd argument of `Fillmurray.image` is deprecated. Use keyword argument like `Fillmurray.image(height: ...)` instead.', uplevel: 1
|
19
|
+
height = legacy_height
|
20
|
+
end
|
21
|
+
|
7
22
|
raise ArgumentError, 'Width should be a number' unless width.to_s =~ /^\d+$/
|
8
23
|
raise ArgumentError, 'Height should be a number' unless height.to_s =~ /^\d+$/
|
9
24
|
raise ArgumentError, 'Grayscale should be a boolean' unless [true, false].include?(grayscale)
|
@@ -26,7 +26,12 @@ module Faker
|
|
26
26
|
template.gsub('L', luhn_digit.to_s)
|
27
27
|
end
|
28
28
|
|
29
|
-
def vat_number(country: 'BR')
|
29
|
+
def vat_number(legacy_country = NOT_GIVEN, country: 'BR')
|
30
|
+
if legacy_country != NOT_GIVEN
|
31
|
+
warn_with_uplevel 'Passing `country` with the 1st argument of `Finance.vat_number` is deprecated. Use keyword argument like `Finance.vat_number(country: ...)` instead.', uplevel: 1
|
32
|
+
country = legacy_country
|
33
|
+
end
|
34
|
+
|
30
35
|
numerify(fetch("finance.vat_number.#{country}"))
|
31
36
|
rescue I18n::MissingTranslationData
|
32
37
|
raise ArgumentError, "Could not find vat number for #{country}"
|
@@ -8,7 +8,22 @@ module Faker
|
|
8
8
|
random_word =~ /\s/ ? word : random_word
|
9
9
|
end
|
10
10
|
|
11
|
-
|
11
|
+
# rubocop:disable Metrics/ParameterLists
|
12
|
+
def words(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_spaces_allowed = NOT_GIVEN, number: 3, supplemental: false, spaces_allowed: false)
|
13
|
+
# rubocop:enable Metrics/ParameterLists
|
14
|
+
if legacy_number != NOT_GIVEN
|
15
|
+
warn_with_uplevel 'Passing `number` with the 1st argument of `Hipster.words` is deprecated. Use keyword argument like `Hipster.words(number: ...)` instead.', uplevel: 1
|
16
|
+
number = legacy_number
|
17
|
+
end
|
18
|
+
if legacy_supplemental != NOT_GIVEN
|
19
|
+
warn_with_uplevel 'Passing `supplemental` with the 2nd argument of `Hipster.words` is deprecated. Use keyword argument like `Hipster.words(supplemental: ...)` instead.', uplevel: 1
|
20
|
+
supplemental = legacy_supplemental
|
21
|
+
end
|
22
|
+
if legacy_spaces_allowed != NOT_GIVEN
|
23
|
+
warn_with_uplevel 'Passing `spaces_allowed` with the 3rd argument of `Hipster.words` is deprecated. Use keyword argument like `Hipster.words(spaces_allowed: ...)` instead.', uplevel: 1
|
24
|
+
spaces_allowed = legacy_spaces_allowed
|
25
|
+
end
|
26
|
+
|
12
27
|
resolved_num = resolve(number)
|
13
28
|
word_list = (
|
14
29
|
translate('faker.hipster.words') +
|
@@ -22,11 +37,35 @@ module Faker
|
|
22
37
|
words.each_with_index { |w, i| words[i] = word if w =~ /\s/ }
|
23
38
|
end
|
24
39
|
|
25
|
-
|
40
|
+
# rubocop:disable Metrics/ParameterLists
|
41
|
+
def sentence(legacy_word_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, supplemental: false, random_words_to_add: 6)
|
42
|
+
# rubocop:enable Metrics/ParameterLists
|
43
|
+
if legacy_word_count != NOT_GIVEN
|
44
|
+
warn_with_uplevel 'Passing `word_count` with the 1st argument of `Hipster.sentence` is deprecated. Use keyword argument like `Hipster.sentence(word_count: ...)` instead.', uplevel: 1
|
45
|
+
word_count = legacy_word_count
|
46
|
+
end
|
47
|
+
if legacy_supplemental != NOT_GIVEN
|
48
|
+
warn_with_uplevel 'Passing `supplemental` with the 2nd argument of `Hipster.sentence` is deprecated. Use keyword argument like `Hipster.sentence(supplemental: ...)` instead.', uplevel: 1
|
49
|
+
supplemental = legacy_supplemental
|
50
|
+
end
|
51
|
+
if legacy_random_words_to_add != NOT_GIVEN
|
52
|
+
warn_with_uplevel 'Passing `random_words_to_add` with the 3rd argument of `Hipster.sentence` is deprecated. Use keyword argument like `Hipster.sentence(random_words_to_add: ...)` instead.', uplevel: 1
|
53
|
+
random_words_to_add = legacy_random_words_to_add
|
54
|
+
end
|
55
|
+
|
26
56
|
words(number: word_count + rand(random_words_to_add.to_i).to_i, supplemental: supplemental, spaces_allowed: true).join(' ').capitalize + '.'
|
27
57
|
end
|
28
58
|
|
29
|
-
def sentences(number: 3, supplemental: false)
|
59
|
+
def sentences(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
60
|
+
if legacy_number != NOT_GIVEN
|
61
|
+
warn_with_uplevel 'Passing `number` with the 1st argument of `Hipster.sentences` is deprecated. Use keyword argument like `Hipster.sentences(number: ...)` instead.', uplevel: 1
|
62
|
+
number = legacy_number
|
63
|
+
end
|
64
|
+
if legacy_supplemental != NOT_GIVEN
|
65
|
+
warn_with_uplevel 'Passing `supplemental` with the 2nd argument of `Hipster.sentences` is deprecated. Use keyword argument like `Hipster.sentences(supplemental: ...)` instead.', uplevel: 1
|
66
|
+
supplemental = legacy_supplemental
|
67
|
+
end
|
68
|
+
|
30
69
|
[].tap do |sentences|
|
31
70
|
1.upto(resolve(number)) do
|
32
71
|
sentences << sentence(word_count: 3, supplemental: supplemental)
|
@@ -34,11 +73,35 @@ module Faker
|
|
34
73
|
end
|
35
74
|
end
|
36
75
|
|
37
|
-
|
76
|
+
# rubocop:disable Metrics/ParameterLists
|
77
|
+
def paragraph(legacy_sentence_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_sentences_to_add = NOT_GIVEN, sentence_count: 3, supplemental: false, random_sentences_to_add: 3)
|
78
|
+
# rubocop:enable Metrics/ParameterLists
|
79
|
+
if legacy_sentence_count != NOT_GIVEN
|
80
|
+
warn_with_uplevel 'Passing `sentence_count` with the 1st argument of `Hipster.paragraph` is deprecated. Use keyword argument like `Hipster.paragraph(sentence_count: ...)` instead.', uplevel: 1
|
81
|
+
sentence_count = legacy_sentence_count
|
82
|
+
end
|
83
|
+
if legacy_supplemental != NOT_GIVEN
|
84
|
+
warn_with_uplevel 'Passing `supplemental` with the 2nd argument of `Hipster.paragraph` is deprecated. Use keyword argument like `Hipster.paragraph(supplemental: ...)` instead.', uplevel: 1
|
85
|
+
supplemental = legacy_supplemental
|
86
|
+
end
|
87
|
+
if legacy_random_sentences_to_add != NOT_GIVEN
|
88
|
+
warn_with_uplevel 'Passing `random_sentences_to_add` with the 3rd argument of `Hipster.paragraph` is deprecated. Use keyword argument like `Hipster.paragraph(random_sentences_to_add: ...)` instead.', uplevel: 1
|
89
|
+
random_sentences_to_add = legacy_random_sentences_to_add
|
90
|
+
end
|
91
|
+
|
38
92
|
sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i).to_i, supplemental: supplemental).join(' ')
|
39
93
|
end
|
40
94
|
|
41
|
-
def paragraphs(number: 3, supplemental: false)
|
95
|
+
def paragraphs(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
96
|
+
if legacy_number != NOT_GIVEN
|
97
|
+
warn_with_uplevel 'Passing `number` with the 1st argument of `Hipster.paragraphs` is deprecated. Use keyword argument like `Hipster.paragraphs(number: ...)` instead.', uplevel: 1
|
98
|
+
number = legacy_number
|
99
|
+
end
|
100
|
+
if legacy_supplemental != NOT_GIVEN
|
101
|
+
warn_with_uplevel 'Passing `supplemental` with the 2nd argument of `Hipster.paragraphs` is deprecated. Use keyword argument like `Hipster.paragraphs(supplemental: ...)` instead.', uplevel: 1
|
102
|
+
supplemental = legacy_supplemental
|
103
|
+
end
|
104
|
+
|
42
105
|
[].tap do |paragraphs|
|
43
106
|
1.upto(resolve(number)) do
|
44
107
|
paragraphs << paragraph(sentence_count: 3, supplemental: supplemental)
|
@@ -46,7 +109,16 @@ module Faker
|
|
46
109
|
end
|
47
110
|
end
|
48
111
|
|
49
|
-
def paragraph_by_chars(characters: 256, supplemental: false)
|
112
|
+
def paragraph_by_chars(legacy_characters = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, characters: 256, supplemental: false)
|
113
|
+
if legacy_characters != NOT_GIVEN
|
114
|
+
warn_with_uplevel 'Passing `characters` with the 1st argument of `Hipster.paragraph_by_chars` is deprecated. Use keyword argument like `Hipster.paragraph_by_chars(characters: ...)` instead.', uplevel: 1
|
115
|
+
characters = legacy_characters
|
116
|
+
end
|
117
|
+
if legacy_supplemental != NOT_GIVEN
|
118
|
+
warn_with_uplevel 'Passing `supplemental` with the 2nd argument of `Hipster.paragraph_by_chars` is deprecated. Use keyword argument like `Hipster.paragraph_by_chars(supplemental: ...)` instead.', uplevel: 1
|
119
|
+
supplemental = legacy_supplemental
|
120
|
+
end
|
121
|
+
|
50
122
|
paragraph = paragraph(sentence_count: 3, supplemental: supplemental)
|
51
123
|
|
52
124
|
paragraph += ' ' + paragraph(sentence_count: 3, supplemental: supplemental) while paragraph.length < characters
|
@@ -12,6 +12,9 @@ module Faker
|
|
12
12
|
].freeze
|
13
13
|
ZA_RACE_DIGIT = '8'
|
14
14
|
ZA_CITIZENSHIP_DIGITS = %w[0 1].freeze
|
15
|
+
BRAZILIAN_ID_FORMAT = /(\d{1,2})(\d{3})(\d{3})([\dX])/
|
16
|
+
BRAZILIAN_ID_FROM = 10_000_000
|
17
|
+
BRAZILIAN_ID_TO = 99_999_999
|
15
18
|
|
16
19
|
class << self
|
17
20
|
def valid
|
@@ -75,7 +78,12 @@ module Faker
|
|
75
78
|
[id_number, south_african_id_checksum_digit(id_number)].join
|
76
79
|
end
|
77
80
|
|
78
|
-
def brazilian_citizen_number(formatted: false)
|
81
|
+
def brazilian_citizen_number(legacy_formatted = NOT_GIVEN, formatted: false)
|
82
|
+
if legacy_formatted != NOT_GIVEN
|
83
|
+
warn_with_uplevel 'Passing `formatted` with the 1st argument of `IDNumber.brazilian_citizen_number` is deprecated. Use keyword argument like `IDNumber.brazilian_citizen_number(formatted: ...)` instead.', uplevel: 1
|
84
|
+
formatted = legacy_formatted
|
85
|
+
end
|
86
|
+
|
79
87
|
digits = Faker::Number.leading_zero_number(digits: 9) until digits&.match(/(\d)((?!\1)\d)+/)
|
80
88
|
first_digit = brazilian_citizen_number_checksum_digit(digits)
|
81
89
|
second_digit = brazilian_citizen_number_checksum_digit(digits + first_digit)
|
@@ -83,6 +91,22 @@ module Faker
|
|
83
91
|
formatted ? format('%s.%s.%s-%s', *number.scan(/\d{2,3}/).flatten) : number
|
84
92
|
end
|
85
93
|
|
94
|
+
alias brazilian_cpf brazilian_citizen_number
|
95
|
+
|
96
|
+
def brazilian_id(legacy_formatted = NOT_GIVEN, formatted: false)
|
97
|
+
if legacy_formatted != NOT_GIVEN
|
98
|
+
warn_with_uplevel 'Passing `formatted` with the 1st argument of `IDNumber.brazilian_id` is deprecated. Use keyword argument like `IDNumber.brazilian_id(formatted: ...)` instead.', uplevel: 1
|
99
|
+
formatted = legacy_formatted
|
100
|
+
end
|
101
|
+
|
102
|
+
digits = Faker::Number.between(to: BRAZILIAN_ID_FROM, from: BRAZILIAN_ID_TO).to_s
|
103
|
+
check_digit = brazilian_id_checksum_digit(digits)
|
104
|
+
number = [digits, check_digit].join
|
105
|
+
formatted ? format('%s.%s.%s-%s', *number.scan(BRAZILIAN_ID_FORMAT).flatten) : number
|
106
|
+
end
|
107
|
+
|
108
|
+
alias brazilian_rg brazilian_id
|
109
|
+
|
86
110
|
private
|
87
111
|
|
88
112
|
def south_african_id_checksum_digit(id_number)
|
@@ -104,13 +128,36 @@ module Faker
|
|
104
128
|
end
|
105
129
|
|
106
130
|
def brazilian_citizen_number_checksum_digit(digits)
|
107
|
-
|
131
|
+
checksum = brazilian_document_checksum(digits)
|
132
|
+
brazilian_document_digit(checksum)
|
133
|
+
end
|
134
|
+
|
135
|
+
def brazilian_id_checksum_digit(digits)
|
136
|
+
checksum = brazilian_document_checksum(digits)
|
137
|
+
brazilian_document_digit(checksum, id: true)
|
138
|
+
end
|
139
|
+
|
140
|
+
def brazilian_document_checksum(digits)
|
141
|
+
digits.chars.each_with_index.inject(0) do |acc, (digit, i)|
|
108
142
|
acc + digit.to_i * (digits.size + 1 - i)
|
109
143
|
end * 10
|
110
|
-
|
144
|
+
end
|
145
|
+
|
146
|
+
def brazilian_document_digit(checksum, id = false)
|
147
|
+
remainder = checksum % 11
|
148
|
+
id ? brazilian_id_digit(remainder) : brazilian_citizen_number_digit(remainder)
|
149
|
+
end
|
150
|
+
|
151
|
+
def brazilian_citizen_number_digit(remainder)
|
111
152
|
remainder == 10 ? '0' : remainder.to_s
|
112
153
|
end
|
113
154
|
|
155
|
+
def brazilian_id_digit(remainder)
|
156
|
+
subtraction = 11 - remainder.to_i
|
157
|
+
digits = { 10 => 'X', 11 => '0' }
|
158
|
+
digits.include?(subtraction) ? digits[subtraction] : subtraction.to_s
|
159
|
+
end
|
160
|
+
|
114
161
|
def _translate(key)
|
115
162
|
parse("id_number.#{key}")
|
116
163
|
end
|
@@ -3,7 +3,16 @@
|
|
3
3
|
module Faker
|
4
4
|
class Internet < Base
|
5
5
|
class << self
|
6
|
-
def email(name: nil, separators: nil)
|
6
|
+
def email(legacy_name = NOT_GIVEN, legacy_separators = NOT_GIVEN, name: nil, separators: nil)
|
7
|
+
if legacy_name != NOT_GIVEN
|
8
|
+
warn_with_uplevel 'Passing `name` with the 1st argument of `Internet.email` is deprecated. Use keyword argument like `Internet.email(name: ...)` instead.', uplevel: 1
|
9
|
+
name = legacy_name
|
10
|
+
end
|
11
|
+
if legacy_separators != NOT_GIVEN
|
12
|
+
warn_with_uplevel 'Passing `separators` with the 2nd argument of `Internet.email` is deprecated. Use keyword argument like `Internet.email(separators: ...)` instead.', uplevel: 1
|
13
|
+
separators = legacy_separators
|
14
|
+
end
|
15
|
+
|
7
16
|
if separators
|
8
17
|
[username(specifier: name, separators: separators), domain_name].join('@')
|
9
18
|
else
|
@@ -11,15 +20,34 @@ module Faker
|
|
11
20
|
end
|
12
21
|
end
|
13
22
|
|
14
|
-
def free_email(name: nil)
|
23
|
+
def free_email(legacy_name = NOT_GIVEN, name: nil)
|
24
|
+
if legacy_name != NOT_GIVEN
|
25
|
+
warn_with_uplevel 'Passing `name` with the 1st argument of `Internet.free_email` is deprecated. Use keyword argument like `Internet.free_email(name: ...)` instead.', uplevel: 1
|
26
|
+
name = legacy_name
|
27
|
+
end
|
28
|
+
|
15
29
|
[username(specifier: name), fetch('internet.free_email')].join('@')
|
16
30
|
end
|
17
31
|
|
18
|
-
def safe_email(name: nil)
|
32
|
+
def safe_email(legacy_name = NOT_GIVEN, name: nil)
|
33
|
+
if legacy_name != NOT_GIVEN
|
34
|
+
warn_with_uplevel 'Passing `name` with the 1st argument of `Internet.safe_email` is deprecated. Use keyword argument like `Internet.safe_email(name: ...)` instead.', uplevel: 1
|
35
|
+
name = legacy_name
|
36
|
+
end
|
37
|
+
|
19
38
|
[username(specifier: name), 'example.' + sample(%w[org com net])].join('@')
|
20
39
|
end
|
21
40
|
|
22
|
-
def username(specifier: nil, separators: %w[. _])
|
41
|
+
def username(legacy_specifier = NOT_GIVEN, legacy_separators = NOT_GIVEN, specifier: nil, separators: %w[. _])
|
42
|
+
if legacy_specifier != NOT_GIVEN
|
43
|
+
warn_with_uplevel 'Passing `specifier` with the 1st argument of `Internet.username` is deprecated. Use keyword argument like `Internet.username(specifier: ...)` instead.', uplevel: 1
|
44
|
+
specifier = legacy_specifier
|
45
|
+
end
|
46
|
+
if legacy_separators != NOT_GIVEN
|
47
|
+
warn_with_uplevel 'Passing `separators` with the 2nd argument of `Internet.username` is deprecated. Use keyword argument like `Internet.username(separators: ...)` instead.', uplevel: 1
|
48
|
+
separators = legacy_separators
|
49
|
+
end
|
50
|
+
|
23
51
|
with_locale(:en) do
|
24
52
|
return shuffle(specifier.scan(/[[:word:]]+/)).join(sample(separators)).downcase if specifier.respond_to?(:scan)
|
25
53
|
|
@@ -55,8 +83,44 @@ module Faker
|
|
55
83
|
end
|
56
84
|
end
|
57
85
|
|
58
|
-
|
59
|
-
|
86
|
+
##
|
87
|
+
# Produces a randomized string of characters
|
88
|
+
#
|
89
|
+
# @param [Integer] min_length
|
90
|
+
# @param [Integer] max_length
|
91
|
+
# @param [Boolean] mix_case
|
92
|
+
# @param [Boolean] special_characters
|
93
|
+
#
|
94
|
+
# @return [String]
|
95
|
+
#
|
96
|
+
# @example Faker::Internet.password #=> "Vg5mSvY1UeRg7"
|
97
|
+
# @example Faker::Internet.password(min_length: 8) #=> "YfGjIk0hGzDqS0"
|
98
|
+
# @example Faker::Internet.password(min_length: 10, max_length: 20) #=> "EoC9ShWd1hWq4vBgFw"
|
99
|
+
# @example Faker::Internet.password(min_length: 10, max_length: 20, mix_case: true) #=> "3k5qS15aNmG"
|
100
|
+
# @example Faker::Internet.password(min_length: 10, max_length: 20, mix_case: true, special_characters: true) #=> "*%NkOnJsH4"
|
101
|
+
#
|
102
|
+
# @faker.version 2.1.3
|
103
|
+
# rubocop:disable Metrics/ParameterLists
|
104
|
+
def password(legacy_min_length = NOT_GIVEN, legacy_max_length = NOT_GIVEN, legacy_mix_case = NOT_GIVEN, legacy_special_characters = NOT_GIVEN, min_length: 8, max_length: 16, mix_case: true, special_characters: false)
|
105
|
+
if legacy_min_length != NOT_GIVEN
|
106
|
+
warn_with_uplevel 'Passing `min_length` with the 1st argument of `Internet.password` is deprecated. Use keyword argument like `Internet.password(min_length: ...)` instead.', uplevel: 1
|
107
|
+
min_length = legacy_min_length
|
108
|
+
end
|
109
|
+
if legacy_max_length != NOT_GIVEN
|
110
|
+
warn_with_uplevel 'Passing `max_length` with the 2nd argument of `Internet.password` is deprecated. Use keyword argument like `Internet.password(max_length: ...)` instead.', uplevel: 1
|
111
|
+
max_length = legacy_max_length
|
112
|
+
end
|
113
|
+
if legacy_mix_case != NOT_GIVEN
|
114
|
+
warn_with_uplevel 'Passing `mix_case` with the 3rd argument of `Internet.password` is deprecated. Use keyword argument like `Internet.password(mix_case: ...)` instead.', uplevel: 1
|
115
|
+
mix_case = legacy_mix_case
|
116
|
+
end
|
117
|
+
if legacy_special_characters != NOT_GIVEN
|
118
|
+
warn_with_uplevel 'Passing `special_characters` with the 4th argument of `Internet.password` is deprecated. Use keyword argument like `Internet.password(special_characters: ...)` instead.', uplevel: 1
|
119
|
+
special_characters = legacy_special_characters
|
120
|
+
end
|
121
|
+
|
122
|
+
min_alpha = mix_case ? 2 : 0
|
123
|
+
temp = Lorem.characters(number: min_length, min_alpha: min_alpha)
|
60
124
|
diff_length = max_length - min_length
|
61
125
|
|
62
126
|
if diff_length.positive?
|
@@ -65,8 +129,12 @@ module Faker
|
|
65
129
|
end
|
66
130
|
|
67
131
|
if mix_case
|
132
|
+
alpha_count = 0
|
68
133
|
temp.chars.each_with_index do |char, index|
|
69
|
-
|
134
|
+
if char =~ /[[:alpha:]]/
|
135
|
+
temp[index] = char.upcase if alpha_count.even?
|
136
|
+
alpha_count += 1
|
137
|
+
end
|
70
138
|
end
|
71
139
|
end
|
72
140
|
|
@@ -80,7 +148,12 @@ module Faker
|
|
80
148
|
temp
|
81
149
|
end
|
82
150
|
|
83
|
-
def domain_name(subdomain: false)
|
151
|
+
def domain_name(legacy_subdomain = NOT_GIVEN, subdomain: false)
|
152
|
+
if legacy_subdomain != NOT_GIVEN
|
153
|
+
warn_with_uplevel 'Passing `subdomain` with the 1st argument of `Internet.domain_name` is deprecated. Use keyword argument like `Internet.domain_name(subdomain: ...)` instead.', uplevel: 1
|
154
|
+
subdomain = legacy_subdomain
|
155
|
+
end
|
156
|
+
|
84
157
|
with_locale(:en) do
|
85
158
|
domain_elements = [Char.prepare(domain_word), domain_suffix]
|
86
159
|
domain_elements.unshift(Char.prepare(domain_word)) if subdomain
|
@@ -88,7 +161,12 @@ module Faker
|
|
88
161
|
end
|
89
162
|
end
|
90
163
|
|
91
|
-
def fix_umlauts(string: '')
|
164
|
+
def fix_umlauts(legacy_string = NOT_GIVEN, string: '')
|
165
|
+
if legacy_string != NOT_GIVEN
|
166
|
+
warn_with_uplevel 'Passing `string` with the 1st argument of `Internet.fix_umlauts` is deprecated. Use keyword argument like `Internet.fix_umlauts(string: ...)` instead.', uplevel: 1
|
167
|
+
string = legacy_string
|
168
|
+
end
|
169
|
+
|
92
170
|
Char.fix_umlauts(string)
|
93
171
|
end
|
94
172
|
|
@@ -100,7 +178,12 @@ module Faker
|
|
100
178
|
fetch('internet.domain_suffix')
|
101
179
|
end
|
102
180
|
|
103
|
-
def mac_address(prefix: '')
|
181
|
+
def mac_address(legacy_prefix = NOT_GIVEN, prefix: '')
|
182
|
+
if legacy_prefix != NOT_GIVEN
|
183
|
+
warn_with_uplevel 'Passing `prefix` with the 1st argument of `Internet.mac_address` is deprecated. Use keyword argument like `Internet.mac_address(prefix: ...)` instead.', uplevel: 1
|
184
|
+
prefix = legacy_prefix
|
185
|
+
end
|
186
|
+
|
104
187
|
prefix_digits = prefix.split(':').map { |d| d.to_i(16) }
|
105
188
|
address_digits = Array.new((6 - prefix_digits.size)) { rand(256) }
|
106
189
|
(prefix_digits + address_digits).map { |d| format('%02x', d) }.join(':')
|
@@ -174,11 +257,34 @@ module Faker
|
|
174
257
|
"#{ip_v6_address}/#{rand(1..127)}"
|
175
258
|
end
|
176
259
|
|
177
|
-
def url(host: domain_name, path: "/#{username}", scheme: 'http')
|
260
|
+
def url(legacy_host = NOT_GIVEN, legacy_path = NOT_GIVEN, legacy_scheme = NOT_GIVEN, host: domain_name, path: "/#{username}", scheme: 'http')
|
261
|
+
# rubocop:enable Metrics/ParameterLists
|
262
|
+
if legacy_host != NOT_GIVEN
|
263
|
+
warn_with_uplevel 'Passing `host` with the 1st argument of `Internet.url` is deprecated. Use keyword argument like `Internet.url(host: ...)` instead.', uplevel: 1
|
264
|
+
host = legacy_host
|
265
|
+
end
|
266
|
+
if legacy_path != NOT_GIVEN
|
267
|
+
warn_with_uplevel 'Passing `path` with the 2nd argument of `Internet.url` is deprecated. Use keyword argument like `Internet.url(path: ...)` instead.', uplevel: 1
|
268
|
+
path = legacy_path
|
269
|
+
end
|
270
|
+
if legacy_scheme != NOT_GIVEN
|
271
|
+
warn_with_uplevel 'Passing `scheme` with the 3rd argument of `Internet.url` is deprecated. Use keyword argument like `Internet.url(scheme: ...)` instead.', uplevel: 1
|
272
|
+
scheme = legacy_scheme
|
273
|
+
end
|
274
|
+
|
178
275
|
"#{scheme}://#{host}#{path}"
|
179
276
|
end
|
180
277
|
|
181
|
-
def slug(words: nil, glue: nil)
|
278
|
+
def slug(legacy_words = NOT_GIVEN, legacy_glue = NOT_GIVEN, words: nil, glue: nil)
|
279
|
+
if legacy_words != NOT_GIVEN
|
280
|
+
warn_with_uplevel 'Passing `words` with the 1st argument of `Internet.slug` is deprecated. Use keyword argument like `Internet.slug(words: ...)` instead.', uplevel: 1
|
281
|
+
words = legacy_words
|
282
|
+
end
|
283
|
+
if legacy_glue != NOT_GIVEN
|
284
|
+
warn_with_uplevel 'Passing `glue` with the 2nd argument of `Internet.slug` is deprecated. Use keyword argument like `Internet.slug(glue: ...)` instead.', uplevel: 1
|
285
|
+
glue = legacy_glue
|
286
|
+
end
|
287
|
+
|
182
288
|
glue ||= sample(%w[- _])
|
183
289
|
(words || Faker::Lorem.words(number: 2).join(' ')).delete(',.').gsub(' ', glue).downcase
|
184
290
|
end
|
@@ -187,7 +293,12 @@ module Faker
|
|
187
293
|
shuffle(rand(16**64).to_s(16).rjust(64, '0').chars.to_a).join
|
188
294
|
end
|
189
295
|
|
190
|
-
def user_agent(vendor: nil)
|
296
|
+
def user_agent(legacy_vendor = NOT_GIVEN, vendor: nil)
|
297
|
+
if legacy_vendor != NOT_GIVEN
|
298
|
+
warn_with_uplevel 'Passing `vendor` with the 1st argument of `Internet.user_agent` is deprecated. Use keyword argument like `Internet.user_agent(vendor: ...)` instead.', uplevel: 1
|
299
|
+
vendor = legacy_vendor
|
300
|
+
end
|
301
|
+
|
191
302
|
agent_hash = translate('faker.internet.user_agent')
|
192
303
|
agents = vendor.respond_to?(:to_sym) && agent_hash[vendor.to_sym] || agent_hash[sample(agent_hash.keys)]
|
193
304
|
sample(agents)
|
@@ -6,13 +6,27 @@ module Faker
|
|
6
6
|
|
7
7
|
class << self
|
8
8
|
# Generate random amount between values with 2 decimals
|
9
|
-
def amount_between(from: 0, to: 0)
|
9
|
+
def amount_between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 0, to: 0)
|
10
|
+
if legacy_from != NOT_GIVEN
|
11
|
+
warn_with_uplevel 'Passing `from` with the 1st argument of `Invoice.amount_between` is deprecated. Use keyword argument like `Invoice.amount_between(from: ...)` instead.', uplevel: 1
|
12
|
+
from = legacy_from
|
13
|
+
end
|
14
|
+
if legacy_to != NOT_GIVEN
|
15
|
+
warn_with_uplevel 'Passing `to` with the 2nd argument of `Invoice.amount_between` is deprecated. Use keyword argument like `Invoice.amount_between(to: ...)` instead.', uplevel: 1
|
16
|
+
to = legacy_to
|
17
|
+
end
|
18
|
+
|
10
19
|
Faker::Base.rand_in_range(from, to).round(2)
|
11
20
|
end
|
12
21
|
|
13
22
|
# International bank slip reference https://en.wikipedia.org/wiki/Creditor_Reference
|
14
23
|
# ref is optional so that we can create unit tests
|
15
|
-
def creditor_reference(ref: '')
|
24
|
+
def creditor_reference(legacy_ref = NOT_GIVEN, ref: '')
|
25
|
+
if legacy_ref != NOT_GIVEN
|
26
|
+
warn_with_uplevel 'Passing `ref` with the 1st argument of `Invoice.creditor_reference` is deprecated. Use keyword argument like `Invoice.creditor_reference(ref: ...)` instead.', uplevel: 1
|
27
|
+
ref = legacy_ref
|
28
|
+
end
|
29
|
+
|
16
30
|
ref = reference if ref.empty?
|
17
31
|
|
18
32
|
'RF' + iban_checksum('RF', ref) + ref
|
@@ -20,7 +34,12 @@ module Faker
|
|
20
34
|
|
21
35
|
# Payment references have some rules in certain countries
|
22
36
|
# ref is optional so that we can create unit tests
|
23
|
-
def reference(ref: '')
|
37
|
+
def reference(legacy_ref = NOT_GIVEN, ref: '')
|
38
|
+
if legacy_ref != NOT_GIVEN
|
39
|
+
warn_with_uplevel 'Passing `ref` with the 1st argument of `Invoice.reference` is deprecated. Use keyword argument like `Invoice.reference(ref: ...)` instead.', uplevel: 1
|
40
|
+
ref = legacy_ref
|
41
|
+
end
|
42
|
+
|
24
43
|
pattern = fetch('invoice.reference.pattern')
|
25
44
|
|
26
45
|
ref = Base.regexify(/#{pattern}/) if ref.empty?
|