faker 1.7.3 → 1.8.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +90 -3
- data/README.md +45 -0
- data/lib/faker.rb +37 -75
- data/lib/faker/address.rb +12 -7
- data/lib/faker/app.rb +1 -5
- data/lib/faker/bank.rb +1 -0
- data/lib/faker/bitcoin.rb +1 -1
- data/lib/faker/code.rb +1 -1
- data/lib/faker/coffee.rb +29 -0
- data/lib/faker/color.rb +2 -2
- data/lib/faker/commerce.rb +1 -2
- data/lib/faker/company.rb +38 -6
- data/lib/faker/compass.rb +65 -0
- data/lib/faker/dessert.rb +19 -0
- data/lib/faker/dr_who.rb +34 -0
- data/lib/faker/dragon_ball.rb +9 -0
- data/lib/faker/family_guy.rb +17 -0
- data/lib/faker/fillmurray.rb +2 -2
- data/lib/faker/finance.rb +1 -1
- data/lib/faker/food.rb +4 -0
- data/lib/faker/funny_name.rb +43 -0
- data/lib/faker/hacker.rb +1 -1
- data/lib/faker/hey_arnold.rb +17 -0
- data/lib/faker/hipster.rb +3 -3
- data/lib/faker/hitchhikers_guide_to_the_galaxy.rb +33 -0
- data/lib/faker/hobbit.rb +21 -0
- data/lib/faker/how_i_met_your_mother.rb +21 -0
- data/lib/faker/id_number.rb +3 -7
- data/lib/faker/internet.rb +20 -14
- data/lib/faker/league_of_legends.rb +29 -0
- data/lib/faker/lorem.rb +5 -5
- data/lib/faker/lovecraft.rb +73 -0
- data/lib/faker/markdown.rb +66 -0
- data/lib/faker/matz.rb +9 -0
- data/lib/faker/music.rb +2 -2
- data/lib/faker/number.rb +6 -6
- data/lib/faker/omniauth.rb +77 -29
- data/lib/faker/overwatch.rb +17 -0
- data/lib/faker/phone_number.rb +2 -10
- data/lib/faker/pokemon.rb +5 -1
- data/lib/faker/rick_and_morty.rb +17 -0
- data/lib/faker/robin.rb +9 -0
- data/lib/faker/rupaul.rb +11 -0
- data/lib/faker/shakespeare.rb +4 -4
- data/lib/faker/simpsons.rb +22 -0
- data/lib/faker/star_trek.rb +21 -0
- data/lib/faker/star_wars.rb +9 -9
- data/lib/faker/time.rb +2 -2
- data/lib/faker/twitter.rb +114 -43
- data/lib/faker/vehicle.rb +3 -3
- data/lib/faker/version.rb +1 -1
- data/lib/faker/zelda.rb +4 -0
- data/lib/locales/bg.yml +41 -0
- data/lib/locales/de.yml +45 -1
- data/lib/locales/en-IND.yml +2 -2
- data/lib/locales/en-MS.yml +39 -0
- data/lib/locales/en.yml +301 -38
- data/lib/locales/en/README.md +13 -0
- data/lib/locales/en/address.yml +37 -0
- data/lib/locales/en/dr_who.yml +74 -0
- data/lib/locales/en/family_guy.yml +7 -0
- data/lib/locales/en/internet.yml +21 -0
- data/lib/locales/en/lovecraft.yml +9 -0
- data/lib/locales/en/rick_and_morty.yml +6 -0
- data/lib/locales/fr.yml +5 -1
- data/lib/locales/nl.yml +26 -26
- data/lib/locales/pt-BR.yml +1 -1
- metadata +33 -3
data/lib/faker/bitcoin.rb
CHANGED
@@ -39,7 +39,7 @@ module Faker
|
|
39
39
|
|
40
40
|
def address_for(network)
|
41
41
|
version = PROTOCOL_VERSIONS.fetch(network)
|
42
|
-
packed = version.chr +
|
42
|
+
packed = version.chr + Faker::Config.random.bytes(20)
|
43
43
|
checksum = Digest::SHA2.digest(Digest::SHA2.digest(packed))[0..3]
|
44
44
|
base58(packed + checksum)
|
45
45
|
end
|
data/lib/faker/code.rb
CHANGED
@@ -64,7 +64,7 @@ module Faker
|
|
64
64
|
|
65
65
|
# Fill in the first two values of the string based with the specified prefix.
|
66
66
|
# Reporting Body Identifier list: http://en.wikipedia.org/wiki/Reporting_Body_Identifier
|
67
|
-
arr = RBI
|
67
|
+
arr = sample(RBI)
|
68
68
|
str[0] = arr[0].to_i
|
69
69
|
str[1] = arr[1].to_i
|
70
70
|
pos = 2
|
data/lib/faker/coffee.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
module Faker
|
2
|
+
class Coffee < Base
|
3
|
+
class << self
|
4
|
+
def blend_name
|
5
|
+
parse('coffee.blend_name')
|
6
|
+
end
|
7
|
+
|
8
|
+
def origin
|
9
|
+
country = fetch('coffee.country')
|
10
|
+
region = fetch("coffee.regions.#{search_format(country)}")
|
11
|
+
"#{region}, #{country}"
|
12
|
+
end
|
13
|
+
|
14
|
+
def variety
|
15
|
+
fetch('coffee.variety')
|
16
|
+
end
|
17
|
+
|
18
|
+
def notes
|
19
|
+
parse('coffee.notes')
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def search_format(key)
|
25
|
+
key.split.length > 1 ? key.split.join('_').downcase : key.downcase
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/faker/color.rb
CHANGED
@@ -10,7 +10,7 @@ module Faker
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def single_rgb_color
|
13
|
-
(0..255).to_a
|
13
|
+
sample((0..255).to_a)
|
14
14
|
end
|
15
15
|
|
16
16
|
def rgb_color
|
@@ -19,7 +19,7 @@ module Faker
|
|
19
19
|
|
20
20
|
# returns [hue, saturation, lightness]
|
21
21
|
def hsl_color
|
22
|
-
[(0..360).to_a
|
22
|
+
[sample((0..360).to_a), rand.round(2), rand.round(2)]
|
23
23
|
end
|
24
24
|
|
25
25
|
def hsla_color
|
data/lib/faker/commerce.rb
CHANGED
@@ -33,8 +33,7 @@ module Faker
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def price(range=0..100.0, as_string=false)
|
36
|
-
|
37
|
-
price = (random.rand(range) * 100).floor/100.0
|
36
|
+
price = (rand(range) * 100).floor/100.0
|
38
37
|
if as_string
|
39
38
|
price_parts = price.to_s.split('.')
|
40
39
|
price = price_parts[0] + price_parts[-1].ljust(2, "0")
|
data/lib/faker/company.rb
CHANGED
@@ -17,16 +17,16 @@ module Faker
|
|
17
17
|
|
18
18
|
# Generate a buzzword-laden catch phrase.
|
19
19
|
def catch_phrase
|
20
|
-
translate('faker.company.buzzwords').collect {|list| list
|
20
|
+
translate('faker.company.buzzwords').collect {|list| sample(list) }.join(' ')
|
21
21
|
end
|
22
22
|
|
23
23
|
def buzzword
|
24
|
-
translate('faker.company.buzzwords').flatten
|
24
|
+
sample(translate('faker.company.buzzwords').flatten)
|
25
25
|
end
|
26
26
|
|
27
27
|
# When a straight answer won't do, BS to the rescue!
|
28
28
|
def bs
|
29
|
-
translate('faker.company.bs').collect {|list| list
|
29
|
+
translate('faker.company.bs').collect {|list| sample(list) }.join(' ')
|
30
30
|
end
|
31
31
|
|
32
32
|
def ein
|
@@ -39,7 +39,7 @@ module Faker
|
|
39
39
|
|
40
40
|
# Get a random company logo url in PNG format.
|
41
41
|
def logo
|
42
|
-
rand_num =
|
42
|
+
rand_num = rand(13) + 1
|
43
43
|
"https://pigment.github.io/fake-logos/logos/medium/color/#{rand_num}.png"
|
44
44
|
end
|
45
45
|
|
@@ -48,13 +48,24 @@ module Faker
|
|
48
48
|
# Valid leading digit: 1, 2, 3, 5, 6, 7, 8, 9
|
49
49
|
# Valid third digit: >= 2
|
50
50
|
# Last digit is a control digit
|
51
|
-
base = [[1, 2, 3, 5, 6, 7, 8, 9]
|
51
|
+
base = [sample([1, 2, 3, 5, 6, 7, 8, 9]), sample((0..9).to_a), sample((2..9).to_a), ('%06d' % rand(10 ** 6))].join
|
52
52
|
base + luhn_algorithm(base).to_s
|
53
53
|
end
|
54
54
|
|
55
|
+
# Get a random Norwegian organization number. Info: https://www.brreg.no/om-oss/samfunnsoppdraget-vart/registera-vare/einingsregisteret/organisasjonsnummeret/
|
56
|
+
def norwegian_organisation_number
|
57
|
+
# Valid leading digit: 8, 9
|
58
|
+
mod11_check = nil
|
59
|
+
while mod11_check.nil?
|
60
|
+
base = [sample([8, 9]), ('%07d' % rand(10 ** 7))].join
|
61
|
+
mod11_check = mod11(base)
|
62
|
+
end
|
63
|
+
base + mod11_check.to_s
|
64
|
+
end
|
65
|
+
|
55
66
|
def australian_business_number
|
56
67
|
base = ('%09d' % rand(10 ** 9))
|
57
|
-
abn = "00#{base}"
|
68
|
+
abn = "00#{base}"
|
58
69
|
|
59
70
|
(99 - (abn_checksum(abn) % 89)).to_s + base
|
60
71
|
end
|
@@ -65,6 +76,27 @@ module Faker
|
|
65
76
|
|
66
77
|
private
|
67
78
|
|
79
|
+
# Mod11 functionality from https://github.com/badmanski/mod11/blob/master/lib/mod11.rb
|
80
|
+
def mod11(number)
|
81
|
+
weight = [2, 3, 4, 5, 6, 7,
|
82
|
+
2, 3, 4, 5, 6, 7,
|
83
|
+
2, 3, 4, 5, 6, 7]
|
84
|
+
|
85
|
+
sum = 0
|
86
|
+
|
87
|
+
number.to_s.reverse.chars.each_with_index do |char, i|
|
88
|
+
sum += char.to_i * weight[i]
|
89
|
+
end
|
90
|
+
|
91
|
+
remainder = sum % 11
|
92
|
+
|
93
|
+
case remainder
|
94
|
+
when 0 then remainder
|
95
|
+
when 1 then nil
|
96
|
+
else 11 - remainder
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
68
100
|
def luhn_algorithm(number)
|
69
101
|
multiplications = []
|
70
102
|
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Faker
|
2
|
+
class Compass < Base
|
3
|
+
class << self
|
4
|
+
def cardinal
|
5
|
+
fetch('compass.cardinal.word')
|
6
|
+
end
|
7
|
+
|
8
|
+
def ordinal
|
9
|
+
fetch('compass.ordinal.word')
|
10
|
+
end
|
11
|
+
|
12
|
+
def half_wind
|
13
|
+
fetch('compass.half-wind.word')
|
14
|
+
end
|
15
|
+
|
16
|
+
def quarter_wind
|
17
|
+
fetch('compass.quarter-wind.word')
|
18
|
+
end
|
19
|
+
|
20
|
+
def direction
|
21
|
+
parse('compass.direction')
|
22
|
+
end
|
23
|
+
|
24
|
+
def abbreviation
|
25
|
+
parse('compass.abbreviation')
|
26
|
+
end
|
27
|
+
|
28
|
+
def azimuth
|
29
|
+
parse('compass.azimuth')
|
30
|
+
end
|
31
|
+
|
32
|
+
def cardinal_abbreviation
|
33
|
+
fetch('compass.cardinal.abbreviation')
|
34
|
+
end
|
35
|
+
|
36
|
+
def ordinal_abbreviation
|
37
|
+
fetch('compass.ordinal.abbreviation')
|
38
|
+
end
|
39
|
+
|
40
|
+
def half_wind_abbreviation
|
41
|
+
fetch('compass.half-wind.abbreviation')
|
42
|
+
end
|
43
|
+
|
44
|
+
def quarter_wind_abbreviation
|
45
|
+
fetch('compass.quarter-wind.abbreviation')
|
46
|
+
end
|
47
|
+
|
48
|
+
def cardinal_azimuth
|
49
|
+
fetch('compass.cardinal.azimuth')
|
50
|
+
end
|
51
|
+
|
52
|
+
def ordinal_azimuth
|
53
|
+
fetch('compass.ordinal.azimuth')
|
54
|
+
end
|
55
|
+
|
56
|
+
def half_wind_azimuth
|
57
|
+
fetch('compass.half-wind.azimuth')
|
58
|
+
end
|
59
|
+
|
60
|
+
def quarter_wind_azimuth
|
61
|
+
fetch('compass.quarter-wind.azimuth')
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Faker
|
2
|
+
class Dessert < Base
|
3
|
+
flexible :dessert
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def variety
|
7
|
+
fetch('dessert.variety')
|
8
|
+
end
|
9
|
+
|
10
|
+
def topping
|
11
|
+
fetch('dessert.topping')
|
12
|
+
end
|
13
|
+
|
14
|
+
def flavor
|
15
|
+
fetch('dessert.flavor')
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/faker/dr_who.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
#frozen_string_literal: true
|
3
|
+
|
4
|
+
module Faker
|
5
|
+
|
6
|
+
class DrWho < Base
|
7
|
+
|
8
|
+
def self.character
|
9
|
+
fetch('dr_who.character')
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.the_doctor
|
13
|
+
fetch('dr_who.the_doctors')
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.catch_phrase
|
17
|
+
fetch('dr_who.catch_phrases')
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.quote
|
21
|
+
fetch('dr_who.quotes')
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.villian
|
25
|
+
fetch('dr_who.villians')
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.specie
|
29
|
+
fetch('dr_who.species')
|
30
|
+
end
|
31
|
+
|
32
|
+
end #class DrWho
|
33
|
+
|
34
|
+
end #module Faker
|
data/lib/faker/fillmurray.rb
CHANGED
@@ -3,8 +3,8 @@ module Faker
|
|
3
3
|
class << self
|
4
4
|
|
5
5
|
def image(grayscale = false, width = 200, height = 200)
|
6
|
-
raise ArgumentError, "Width should be a number" unless width.match(/^\d+$/)
|
7
|
-
raise ArgumentError, "Height should be a number" unless height.match(/^\d+$/)
|
6
|
+
raise ArgumentError, "Width should be a number" unless width.to_s.match(/^\d+$/)
|
7
|
+
raise ArgumentError, "Height should be a number" unless height.to_s.match(/^\d+$/)
|
8
8
|
raise ArgumentError, "Grayscale should be a boolean" unless [true, false].include?(grayscale)
|
9
9
|
|
10
10
|
grayscale == true ? "https://fillmurray.com/g/#{width}/#{height}" : "https://fillmurray.com/#{width}/#{height}"
|
data/lib/faker/finance.rb
CHANGED
data/lib/faker/food.rb
CHANGED
@@ -0,0 +1,43 @@
|
|
1
|
+
module Faker
|
2
|
+
class FunnyName < Base
|
3
|
+
flexible :funny_name
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def name
|
7
|
+
fetch('funny_name.name')
|
8
|
+
end
|
9
|
+
|
10
|
+
def two_word_name
|
11
|
+
two_word_names = fetch_all('funny_name.name').select do |name|
|
12
|
+
name.count(' ') == 1
|
13
|
+
end
|
14
|
+
|
15
|
+
sample(two_word_names)
|
16
|
+
end
|
17
|
+
|
18
|
+
def three_word_name
|
19
|
+
three_word_names = fetch_all('funny_name.name').select do |name|
|
20
|
+
name.count(' ') == 2
|
21
|
+
end
|
22
|
+
|
23
|
+
sample(three_word_names)
|
24
|
+
end
|
25
|
+
|
26
|
+
def four_word_name
|
27
|
+
four_word_names = fetch_all('funny_name.name').select do |name|
|
28
|
+
name.count(' ') == 3
|
29
|
+
end
|
30
|
+
|
31
|
+
sample(four_word_names)
|
32
|
+
end
|
33
|
+
|
34
|
+
def name_with_initial
|
35
|
+
names_with_initials = fetch_all('funny_name.name').select do |name|
|
36
|
+
name.count('.') > 0
|
37
|
+
end
|
38
|
+
|
39
|
+
sample(names_with_initials)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/faker/hacker.rb
CHANGED
data/lib/faker/hipster.rb
CHANGED
@@ -2,7 +2,7 @@ module Faker
|
|
2
2
|
class Hipster < Base
|
3
3
|
class << self
|
4
4
|
def word
|
5
|
-
random_word = translate('faker.hipster.words')
|
5
|
+
random_word = sample(translate('faker.hipster.words'))
|
6
6
|
random_word.match(/\s/) ? word : random_word
|
7
7
|
end
|
8
8
|
|
@@ -14,8 +14,8 @@ module Faker
|
|
14
14
|
)
|
15
15
|
word_list = word_list * ((resolved_num / word_list.length) + 1)
|
16
16
|
|
17
|
-
return word_list
|
18
|
-
words = word_list
|
17
|
+
return shuffle(word_list)[0, resolved_num] if spaces_allowed
|
18
|
+
words = shuffle(word_list)[0, resolved_num]
|
19
19
|
words.each_with_index { |w, i| words[i] = word if w.match(/\s/) }
|
20
20
|
end
|
21
21
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Faker
|
2
|
+
class HitchhikersGuideToTheGalaxy < Base
|
3
|
+
class << self
|
4
|
+
def character
|
5
|
+
fetch('hitchhikers_guide_to_the_galaxy.characters')
|
6
|
+
end
|
7
|
+
|
8
|
+
def location
|
9
|
+
fetch('hitchhikers_guide_to_the_galaxy.locations')
|
10
|
+
end
|
11
|
+
|
12
|
+
def marvin_quote
|
13
|
+
fetch('hitchhikers_guide_to_the_galaxy.marvin_quote')
|
14
|
+
end
|
15
|
+
|
16
|
+
def planet
|
17
|
+
fetch('hitchhikers_guide_to_the_galaxy.planets')
|
18
|
+
end
|
19
|
+
|
20
|
+
def quote
|
21
|
+
fetch('hitchhikers_guide_to_the_galaxy.quotes')
|
22
|
+
end
|
23
|
+
|
24
|
+
def specie
|
25
|
+
fetch('hitchhikers_guide_to_the_galaxy.species')
|
26
|
+
end
|
27
|
+
|
28
|
+
def starship
|
29
|
+
fetch('hitchhikers_guide_to_the_galaxy.starships')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|