ffaker 2.21.0 → 2.23.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 (108) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +131 -17
  3. data/Gemfile +15 -0
  4. data/README.md +18 -6
  5. data/REFERENCE.md +1012 -969
  6. data/Rakefile +16 -47
  7. data/bin/console +9 -0
  8. data/ffaker.gemspec +9 -23
  9. data/lib/ffaker/address.rb +4 -4
  10. data/lib/ffaker/address_fr.rb +3 -5
  11. data/lib/ffaker/address_it.rb +1 -4
  12. data/lib/ffaker/address_ua.rb +1 -1
  13. data/lib/ffaker/avatar.rb +11 -3
  14. data/lib/ffaker/bank.rb +1 -1
  15. data/lib/ffaker/bank_us.rb +33 -0
  16. data/lib/ffaker/book.rb +15 -7
  17. data/lib/ffaker/cheesy_lingo.rb +2 -2
  18. data/lib/ffaker/code.rb +1 -1
  19. data/lib/ffaker/company.rb +2 -2
  20. data/lib/ffaker/company_fr.rb +2 -2
  21. data/lib/ffaker/crypto.rb +14 -0
  22. data/lib/ffaker/data/address_de/state +1 -0
  23. data/lib/ffaker/data/jo_jo/first_names +356 -0
  24. data/lib/ffaker/data/jo_jo/full_names +225 -0
  25. data/lib/ffaker/data/jo_jo/last_names +153 -0
  26. data/lib/ffaker/data/jo_jo/stands +149 -0
  27. data/lib/ffaker/date.rb +40 -0
  28. data/lib/ffaker/filesystem.rb +12 -2
  29. data/lib/ffaker/geolocation.rb +2 -2
  30. data/lib/ffaker/identification_br.rb +3 -12
  31. data/lib/ffaker/identification_ec.rb +39 -0
  32. data/lib/ffaker/identification_es_cl.rb +2 -2
  33. data/lib/ffaker/identification_es_co.rb +1 -1
  34. data/lib/ffaker/identification_kr.rb +11 -4
  35. data/lib/ffaker/identification_pl.rb +6 -6
  36. data/lib/ffaker/identification_tw.rb +1 -1
  37. data/lib/ffaker/image.rb +28 -4
  38. data/lib/ffaker/jo_jo.rb +24 -0
  39. data/lib/ffaker/lorem_ja.rb +1 -1
  40. data/lib/ffaker/lorem_ru.rb +1 -1
  41. data/lib/ffaker/movie.rb +1 -1
  42. data/lib/ffaker/name_fr.rb +4 -3
  43. data/lib/ffaker/name_pl.rb +1 -1
  44. data/lib/ffaker/number.rb +6 -2
  45. data/lib/ffaker/phone_number_de.rb +3 -3
  46. data/lib/ffaker/skill.rb +1 -1
  47. data/lib/ffaker/ssn.rb +4 -2
  48. data/lib/ffaker/ssn_se.rb +2 -2
  49. data/lib/ffaker/string.rb +1 -1
  50. data/lib/ffaker/time.rb +3 -3
  51. data/lib/ffaker/utils/module_utils.rb +5 -6
  52. data/lib/ffaker/utils/unique_utils.rb +33 -21
  53. data/lib/ffaker/vehicle.rb +2 -2
  54. data/lib/{version.rb → ffaker/version.rb} +1 -1
  55. data/lib/ffaker.rb +63 -191
  56. data/scripts/reference.rb +8 -10
  57. data/test/helper.rb +3 -5
  58. data/test/test_address_da.rb +3 -3
  59. data/test/test_address_fi.rb +2 -2
  60. data/test/test_address_se.rb +2 -2
  61. data/test/test_avatar.rb +30 -7
  62. data/test/test_bank_us.rb +35 -0
  63. data/test/test_book.rb +29 -0
  64. data/test/test_cheesy_lingo.rb +1 -1
  65. data/test/test_color.rb +3 -3
  66. data/test/test_crypto.rb +15 -0
  67. data/test/test_date.rb +47 -0
  68. data/test/test_filesystem.rb +30 -4
  69. data/test/test_freedom_ipsum.rb +1 -1
  70. data/test/test_gender_it.rb +1 -1
  71. data/test/test_gender_ja.rb +1 -1
  72. data/test/test_gender_jp.rb +1 -1
  73. data/test/test_gender_pl.rb +1 -1
  74. data/test/test_healthcare_ru.rb +1 -1
  75. data/test/test_hipster_ipsum.rb +1 -1
  76. data/test/test_html_ipsum.rb +2 -2
  77. data/test/test_identification.rb +12 -2
  78. data/test/test_identification_ec.rb +33 -0
  79. data/test/test_identification_es_mx.rb +3 -1
  80. data/test/test_identification_it.rb +12 -1
  81. data/test/test_identification_kr.rb +3 -3
  82. data/test/test_image.rb +51 -5
  83. data/test/test_internet.rb +3 -1
  84. data/test/test_internet_se.rb +5 -2
  85. data/test/test_jo_jo.rb +29 -0
  86. data/test/test_lorem_br.rb +2 -2
  87. data/test/test_lorem_cn.rb +3 -3
  88. data/test/test_lorem_fr.rb +3 -3
  89. data/test/test_lorem_ie.rb +2 -2
  90. data/test/test_lorem_kr.rb +3 -3
  91. data/test/test_lorem_pl.rb +2 -2
  92. data/test/test_lorem_ru.rb +3 -3
  93. data/test/test_lorem_ua.rb +3 -3
  94. data/test/test_module_utils.rb +33 -0
  95. data/test/test_name_da.rb +1 -1
  96. data/test/test_name_ph.rb +1 -1
  97. data/test/test_name_ru.rb +2 -2
  98. data/test/test_name_ua.rb +2 -2
  99. data/test/test_number.rb +13 -1
  100. data/test/test_phone_number_nl.rb +1 -1
  101. data/test/test_phone_number_se.rb +1 -1
  102. data/test/test_phone_number_sg.rb +8 -8
  103. data/test/test_unique_utils.rb +29 -5
  104. data/test/test_units.rb +6 -6
  105. data/test/test_units_english.rb +15 -15
  106. data/test/test_units_metric.rb +15 -15
  107. data/test/test_vehicle.rb +22 -0
  108. metadata +24 -241
@@ -0,0 +1,149 @@
1
+ Anubis
2
+ Atum
3
+ Bastet
4
+ Cream
5
+ Death Thirteen
6
+ Geb
7
+ High Priestess
8
+ Horus
9
+ Judgement
10
+ Khnum
11
+ Osiris
12
+ Sethan
13
+ Tenore Sax
14
+ Tohth
15
+ Dark Blue Moon
16
+ Emperor
17
+ Ebony Devil
18
+ Empress
19
+ Hanged Man
20
+ Hermit Purple
21
+ Hierophant Green
22
+ Justice
23
+ Lovers
24
+ Magician's Red
25
+ Silver Chariot
26
+ Star Platinum
27
+ Strength
28
+ Sun
29
+ The Fool
30
+ The World
31
+ Tower of Gray
32
+ Wheel of Fortune
33
+ Yellow Temperance
34
+ Achtung Baby
35
+ Aqua Necklace
36
+ Atom Heart Father
37
+ Bad Company
38
+ Boy II Man
39
+ Cheap Trick
40
+ Cinderella
41
+ Crazy Diamond
42
+ Enigma
43
+ Earth Wind and Fire
44
+ Harvest
45
+ Heaven's Door
46
+ Highway Star
47
+ Killer Queen
48
+ Sheer Heart Attack
49
+ Bites the Dust
50
+ Love Deluxe
51
+ Pearl Jam
52
+ Ratt
53
+ Red Hot Chili Pepper
54
+ Super Fly
55
+ Surface
56
+ The Lock
57
+ The Hand
58
+ Stray Cat
59
+ Black Sabbath
60
+ Baby Face
61
+ Gold Experience
62
+ Sticky Fingers
63
+ Metallica
64
+ Purple Haze
65
+ Moody Blues
66
+ Sex Pistols
67
+ The Grateful Dead
68
+ Aerosmith
69
+ Beach Boy
70
+ Man in the Mirror
71
+ Baby Face (GoGo)
72
+ Chariot Requiem
73
+ Clash
74
+ Echoes
75
+ Gold Experience Requiem
76
+ Green Day
77
+ King Crimson
78
+ Kraft Work
79
+ Little Feet
80
+ Mr.President
81
+ Notorious B.I.G
82
+ Oasis
83
+ Rolling Stones
84
+ Soft Machine
85
+ Spice Girl
86
+ Talking Head
87
+ White Album
88
+ Whitesnake
89
+ C-Moon
90
+ Jail House Lock
91
+ Stone Free
92
+ Goo Goo Dolls
93
+ Under World
94
+ Sky High
95
+ Star Platinum
96
+ Bohemian Rhapsody
97
+ Burning Down the House
98
+ Diver Down
99
+ Dragon's Dream
100
+ Foo Fighters
101
+ Green
102
+ Highway to Hell
103
+ Kiss
104
+ Jumpin' Jack Flash
105
+ Limp Bizkit
106
+ Made in Heaven
107
+ Manhattan Transfer
108
+ Marilyn Manson
109
+ Planet Waves
110
+ Survivor
111
+ Weather Report
112
+ Yo-Yo Ma
113
+ 20th Century Boy
114
+ Ball Breaker
115
+ Boku no Rhythm wo Kiitekure
116
+ Catch the Rainbow
117
+ Chocolate Disco
118
+ Civil War
119
+ Cream Starter
120
+ Dirty Deeds Done Dirt Cheap
121
+ D4C Love Train
122
+ Hey Ya!
123
+ In a Silent Way
124
+ Mandom
125
+ Oh! Lonesome Me
126
+ Scary Monsters
127
+ Sugar Mountain
128
+ Tatoo You!
129
+ Ticket to Ride
130
+ Tomb of the Boom
131
+ Tubular Bells
132
+ Tusk
133
+ Wired
134
+ Born This Way
135
+ California King Bed
136
+ Fun Fun Fun
137
+ Nut King Call
138
+ Paisley Park
139
+ Paper Moon King
140
+ Soft & Wet
141
+ Manic Depression
142
+ Voodoo Child
143
+ All Along Watchtower
144
+ Dolly Dagger
145
+ Nightbird Flying
146
+ Purple Haze Distortion
147
+ Rainy Day Dream Away
148
+ Remote Romance
149
+ House of Holy
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'date'
4
+
5
+ module FFaker
6
+ module Date
7
+ extend FFaker::ModuleUtils
8
+ extend self
9
+
10
+ # Generates a random date between 2 dates
11
+ def between(from, to)
12
+ FFaker::Time.between(from, to).to_date
13
+ end
14
+
15
+ # Generates a random date up to `days` days in the past
16
+ def backward(days = 365)
17
+ from = ::Date.today - days
18
+ to = ::Date.today - 1
19
+
20
+ between(from, to)
21
+ end
22
+
23
+ # Generates a random date up to `days` days in the future
24
+ def forward(days = 365)
25
+ from = ::Date.today + 1
26
+ to = ::Date.today + days
27
+
28
+ between(from, to)
29
+ end
30
+
31
+ # Random birthday date (maximum age between 18 and 65)
32
+ # Keyword arguments: min_age, max_age
33
+ def birthday(min_age: 18, max_age: 65)
34
+ from = ::Date.today.prev_year(max_age + 1).next_day
35
+ to = ::Date.today.prev_year(min_age)
36
+
37
+ between(from, to)
38
+ end
39
+ end
40
+ end
@@ -17,8 +17,18 @@ module FFaker
17
17
  Lorem.words.join(directory_separator)
18
18
  end
19
19
 
20
- def file_name(dir = directory, name = Lorem.word.downcase,
21
- ext = extension, directory_separator = File::SEPARATOR)
20
+ def file_name(
21
+ *args,
22
+ dir: directory, name: Lorem.word.downcase, ext: extension, directory_separator: File::SEPARATOR
23
+ )
24
+ if args.any?
25
+ warn "Positional arguments for Filesystem##{__method__} are deprecated. Please use keyword arguments."
26
+ dir = args[0]
27
+ name = args[1] if args.size > 1
28
+ ext = args[2] if args.size > 2
29
+ directory_separator = args[3] if args.size > 3
30
+ end
31
+
22
32
  "#{dir}#{directory_separator}#{name}.#{ext}"
23
33
  end
24
34
  end
@@ -51,8 +51,8 @@ module FFaker
51
51
  latitude_range = [upper_left[0], lower_right[0]].sort
52
52
  longitude_range = [upper_left[1], lower_right[1]].sort
53
53
 
54
- latitude = latitude_range[0] + rand * (latitude_range[1] - latitude_range[0])
55
- longitude = longitude_range[0] + rand * (longitude_range[1] - longitude_range[0])
54
+ latitude = latitude_range[0] + (rand * (latitude_range[1] - latitude_range[0]))
55
+ longitude = longitude_range[0] + (rand * (longitude_range[1] - longitude_range[0]))
56
56
 
57
57
  [latitude, longitude]
58
58
  end
@@ -17,11 +17,7 @@ module FFaker
17
17
 
18
18
  def pretty_cpf
19
19
  cpf_numbers = cpf
20
- format('%s.%s.%s-%s',
21
- cpf_numbers[0..2],
22
- cpf_numbers[3..5],
23
- cpf_numbers[6..8],
24
- cpf_numbers[9..10])
20
+ "#{cpf_numbers[0..2]}.#{cpf_numbers[3..5]}.#{cpf_numbers[6..8]}-#{cpf_numbers[9..10]}"
25
21
  end
26
22
 
27
23
  def cnpj
@@ -32,12 +28,7 @@ module FFaker
32
28
 
33
29
  def pretty_cnpj
34
30
  cnpj_numbers = cnpj.to_s.rjust(14, '0')
35
- format('%s.%s.%s/%s-%s',
36
- cnpj_numbers[0..1],
37
- cnpj_numbers[2..4],
38
- cnpj_numbers[5..7],
39
- cnpj_numbers[8..11],
40
- cnpj_numbers[12..14])
31
+ "#{cnpj_numbers[0..1]}.#{cnpj_numbers[2..4]}.#{cnpj_numbers[5..7]}/#{cnpj_numbers[8..11]}-#{cnpj_numbers[12..14]}"
41
32
  end
42
33
 
43
34
  def rg
@@ -71,7 +62,7 @@ module FFaker
71
62
  if document_digits.size + 1 == verification_multipliers.size && document_digits.uniq.size > 1
72
63
  0.upto(1) do |i|
73
64
  sum = verification_multipliers.drop(1 - i).each_with_index.inject(0) do |val, (value, j)|
74
- val + document_digits[j] * value
65
+ val + (document_digits[j] * value)
75
66
  end
76
67
  validation_digits[i] = (sum %= 11) < 2 ? 0 : 11 - sum
77
68
  document_digits.push(validation_digits[i])
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FFaker
4
+ module IdentificationEC
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ # https://medium.com/@bryansuarez/c%C3%B3mo-validar-c%C3%A9dula-y-ruc-en-ecuador-b62c5666186f
9
+ # Cedula de Identificacion
10
+ def ci
11
+ first_digits = ci_digits
12
+ "#{first_digits}#{last_digit(first_digits)}"
13
+ end
14
+
15
+ private
16
+
17
+ def ci_digits
18
+ "#{FFaker.numerify('##')}#{rand(0..5)}#{FFaker.numerify('######')}"
19
+ end
20
+
21
+ def last_digit(digits)
22
+ mod = digits_sum(digits) % 10
23
+ 10 - mod if mod.positive?
24
+ end
25
+
26
+ def digits_sum(digits)
27
+ sum = 0
28
+ digits.chars.each_with_index do |char, index|
29
+ if index.even?
30
+ multiple = char.to_i * 2
31
+ sum += multiple > 9 ? multiple - 9 : multiple
32
+ else
33
+ sum += char.to_i
34
+ end
35
+ end
36
+ sum
37
+ end
38
+ end
39
+ end
@@ -20,10 +20,10 @@ module FFaker
20
20
  private
21
21
 
22
22
  def dv(rut)
23
- total = rut.to_s.rjust(8, '0').split(//).zip(%w[3 2 7 6 5 4 3 2]).sum do |a, b|
23
+ total = rut.to_s.rjust(8, '0').chars.zip(%w[3 2 7 6 5 4 3 2]).sum do |a, b|
24
24
  a.to_i * b.to_i
25
25
  end
26
- (11 - total % 11).to_s.gsub(/10/, 'k').gsub(/11/, '0')
26
+ (11 - (total % 11)).to_s.gsub('10', 'k').gsub('11', '0')
27
27
  end
28
28
  end
29
29
  end
@@ -32,7 +32,7 @@ module FFaker
32
32
  end
33
33
 
34
34
  def expedition_date
35
- today = Date.today
35
+ today = ::Date.today
36
36
  today - rand(today.year)
37
37
  end
38
38
  end
@@ -1,18 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FFaker
4
- module IdentificationKr
4
+ module IdentificationKR
5
5
  extend ModuleUtils
6
6
  extend self
7
7
 
8
8
  # Resident Registration Number
9
9
  # http://ko.wikipedia.org/wiki/%EC%A3%BC%EB%AF%BC%EB%93%B1%EB%A1%9D%EB%B2%88%ED%98%B8
10
10
  def rrn
11
- birth = fetch_sample(Date.new(1970, 1, 1)..Date.new(1999, 12, 31)).strftime('%y%d%m')
11
+ birth = fetch_sample(::Date.new(1970, 1, 1)..::Date.new(1999, 12, 31)).strftime('%y%d%m')
12
12
  sex = fetch_sample([1, 2])
13
13
  loc = FFaker.numerify("#{fetch_sample(Array('00'..'95'))}###")
14
- a, b, c, d, e, f, g, h, i, j, k, l = "#{birth}#{sex}#{loc}".split(//).map(&:to_i)
15
- checksum = (11 - (2 * a + 3 * b + 4 * c + 5 * d + 6 * e + 7 * f + 8 * g + 9 * h + 2 * i + 3 * j + 4 * k + 5 * l) % 11) % 10
14
+ a, b, c, d, e, f, g, h, i, j, k, l = "#{birth}#{sex}#{loc}".chars.map(&:to_i)
15
+ checksum = (
16
+ 11 - (
17
+ (
18
+ (2 * a) + (3 * b) + (4 * c) + (5 * d) + (6 * e) + (7 * f) + (8 * g) + (9 * h) +
19
+ (2 * i) + (3 * j) + (4 * k) + (5 * l)
20
+ ) % 11
21
+ )
22
+ ) % 10
16
23
  "#{birth}-#{sex}#{loc}#{checksum}"
17
24
  end
18
25
  end
@@ -37,8 +37,8 @@ module FFaker
37
37
  private
38
38
 
39
39
  def generate_valid_pesel_date
40
- from = Date.new(1800, 1, 1)
41
- to = [Date.today, Date.new(2299, 12, 31)].min
40
+ from = ::Date.new(1800, 1, 1)
41
+ to = [::Date.today, ::Date.new(2299, 12, 31)].min
42
42
  fetch_sample(from..to)
43
43
  end
44
44
 
@@ -63,15 +63,15 @@ module FFaker
63
63
  end
64
64
 
65
65
  def pesel_checksum(date, serial_number)
66
- pesel_digits = "#{date}#{serial_number}".split('').map(&:to_i)
66
+ pesel_digits = "#{date}#{serial_number}".chars.map(&:to_i)
67
67
  a, b, c, d, e, f, g, h, i, j = pesel_digits
68
- (a * 9 + b * 7 + c * 3 + d + e * 9 + f * 7 + g * 3 + h + i * 9 + j * 7) % 10
68
+ ((a * 9) + (b * 7) + (c * 3) + d + (e * 9) + (f * 7) + (g * 3) + h + (i * 9) + (j * 7)) % 10
69
69
  end
70
70
 
71
71
  def identity_card_checksum(letter_part, number_part)
72
72
  a, b, c = letter_part.codepoints.map { |codepoints| codepoints - 55 }
73
- d, e, f, g, h = number_part.split('').map(&:to_i)
74
- (a * 7 + b * 3 + c + 7 * d + 3 * e + f + 7 * g + 3 * h) % 10
73
+ d, e, f, g, h = number_part.chars.map(&:to_i)
74
+ ((a * 7) + (b * 3) + c + (7 * d) + (3 * e) + f + (7 * g) + (3 * h)) % 10
75
75
  end
76
76
  end
77
77
  end
@@ -17,7 +17,7 @@ module FFaker
17
17
  serial = FFaker.numerify('#######')
18
18
  a, b, c, d, e, f, g, h, i, j = "#{code}#{gender}#{serial}".chars.map(&:to_i)
19
19
 
20
- checksum = (9 * a + b + 2 * c + 3 * d + 4 * e + 5 * f + 6 * g + 7 * h + 8 * i + 9 * j) % 10
20
+ checksum = ((9 * a) + b + (2 * c) + (3 * d) + (4 * e) + (5 * f) + (6 * g) + (7 * h) + (8 * i) + (9 * j)) % 10
21
21
  "#{letter.upcase}#{gender}#{serial}#{checksum}"
22
22
  end
23
23
  end
data/lib/ffaker/image.rb CHANGED
@@ -11,7 +11,18 @@ module FFaker
11
11
 
12
12
  SUPPORTED_FORMATS = %w[png jpg jpeg gif].freeze
13
13
 
14
- def url(size = '300x300', format = 'png', bg_color = :random, text_color = :random, text = nil)
14
+ ## `*args` for old format support, it will be removed with deprecation
15
+ # rubocop:disable Metrics/ParameterLists
16
+ def url(*args, size: '300x300', format: 'png', bg_color: :random, text_color: :random, text: nil)
17
+ if args.any?
18
+ warn "Positional arguments for Image##{__method__} are deprecated. Please use keyword arguments."
19
+ size = args[0]
20
+ format = args[1] if args.size > 1
21
+ bg_color = args[2] if args.size > 2
22
+ text_color = args[3] if args.size > 3
23
+ text = args[4] if args.size > 4
24
+ end
25
+
15
26
  check_size!(size)
16
27
  check_format!(format)
17
28
 
@@ -21,20 +32,33 @@ module FFaker
21
32
 
22
33
  "https://dummyimage.com/#{size}/#{bg_color}/#{text_color}.#{format}?text=#{text}"
23
34
  end
35
+ # rubocop:enable Metrics/ParameterLists
36
+
37
+ ## `*args` for old format support, it will be removed with deprecation
38
+ # rubocop:disable Metrics/ParameterLists
39
+ def file(*args, size: '300x300', format: 'png', bg_color: :random, text_color: :random, text: nil)
40
+ if args.any?
41
+ warn "Positional arguments for Image##{__method__} are deprecated. Please use keyword arguments."
42
+ size = args[0]
43
+ format = args[1] if args.size > 1
44
+ bg_color = args[2] if args.size > 2
45
+ text_color = args[3] if args.size > 3
46
+ text = args[4] if args.size > 4
47
+ end
24
48
 
25
- def file(size = '300x300', format = 'png', bg_color = :random, text_color = :random, text = nil)
26
- uri = URI.parse(url(size, format, bg_color, text_color, text))
49
+ uri = URI.parse(url(size: size, format: format, bg_color: bg_color, text_color: text_color, text: text))
27
50
  file = Tempfile.new('ffaker_image')
28
51
  file.binmode
29
52
  file << uri.open.read
30
53
  file.close
31
54
  File.new(file.path)
32
55
  end
56
+ # rubocop:enable Metrics/ParameterLists
33
57
 
34
58
  private
35
59
 
36
60
  def check_size!(size)
37
- return true if size =~ /\A\d+x\d+\z/
61
+ return true if size.match?(/\A\d+x\d+\z/)
38
62
 
39
63
  raise ArgumentError, 'Size should be specified in format 300x300'
40
64
  end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FFaker
4
+ module JoJo
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def full_name
9
+ fetch_sample(FULL_NAMES)
10
+ end
11
+
12
+ def first_name
13
+ fetch_sample(FIRST_NAMES)
14
+ end
15
+
16
+ def last_name
17
+ fetch_sample(LAST_NAMES)
18
+ end
19
+
20
+ def stand
21
+ fetch_sample(STANDS)
22
+ end
23
+ end
24
+ end
@@ -30,7 +30,7 @@ module FFaker
30
30
  end
31
31
 
32
32
  def paragraph(sentence_count = 3)
33
- sentences(sentence_count).join('、') + '、' + fetch_sample(SENTENCES_END) + ''
33
+ "#{sentences(sentence_count).join('、')}、#{fetch_sample(SENTENCES_END)}"
34
34
  end
35
35
 
36
36
  def paragraphs(count = 3)
@@ -50,7 +50,7 @@ module FFaker
50
50
  if CAPITAL_CHARS.include?(string[0])
51
51
  string
52
52
  else
53
- CAPITAL_CHARS[CHARS.index(string[0])] + string[1..-1]
53
+ CAPITAL_CHARS[CHARS.index(string[0])] + string[1..]
54
54
  end
55
55
  end
56
56
  end
data/lib/ffaker/movie.rb CHANGED
@@ -37,7 +37,7 @@ module FFaker
37
37
  end
38
38
 
39
39
  def maybe_adj_or_adv
40
- fetch_sample(ADJ_AND_ADV) + ' ' if rand(0..1) == 1
40
+ "#{fetch_sample(ADJ_AND_ADV)} " if rand(0..1) == 1
41
41
  end
42
42
 
43
43
  def simple_title
@@ -25,9 +25,10 @@ module FFaker
25
25
 
26
26
  def name
27
27
  case rand(0..9)
28
- when 7 then "#{first_name} #{prefix} #{last_name}"
29
- when 5 then "#{first_name} #{prefix} #{last_name}"
30
- else "#{first_name} #{last_name}"
28
+ when 5, 7
29
+ "#{first_name} #{prefix} #{last_name}"
30
+ else
31
+ "#{first_name} #{last_name}"
31
32
  end
32
33
  end
33
34
  end
@@ -11,7 +11,7 @@ module FFaker
11
11
  GENDERS = %i[random female male].freeze
12
12
  MALE_PREFIXES = %w[Pan].freeze
13
13
  FEMALE_PREFIXES = %w[Pani].freeze
14
- ACADEMIC_DEGREE_PREFIXES = %w[lic. inż. mgr mgr\ inż. dr dr\ hab. prof.].freeze
14
+ ACADEMIC_DEGREE_PREFIXES = ['lic.', 'inż.', 'mgr', 'mgr inż.', 'dr', 'dr hab.', 'prof.'].freeze
15
15
  PREFIXES = (MALE_PREFIXES + FEMALE_PREFIXES + ACADEMIC_DEGREE_PREFIXES).freeze
16
16
 
17
17
  # Generates a random full name for a given gender (random by default).
data/lib/ffaker/number.rb CHANGED
@@ -15,12 +15,16 @@ module FFaker
15
15
  FFaker.numerify("#{whole_part_pattern}.#{fractional_part_pattern}").to_f
16
16
  end
17
17
 
18
+ def between(from: 1.00, to: 5000.00)
19
+ fetch_sample(from..to)
20
+ end
21
+
18
22
  private
19
23
 
20
24
  def generate_pattern(digits)
21
- raise ArgumentError.new('Digits cannot be less than 1') if digits < 1
25
+ raise ArgumentError, 'Digits cannot be less than 1' if digits < 1
22
26
 
23
- "#{fetch_sample(1..9)}#{"#" * (digits - 1)}"
27
+ "#{fetch_sample(1..9)}#{'#' * (digits - 1)}"
24
28
  end
25
29
  end
26
30
  end
@@ -7,15 +7,15 @@ module FFaker
7
7
 
8
8
  # Mobile prefixes are in the 015x, 016x, 017x ranges
9
9
  def mobile_prefix(leading_zero = true)
10
- mobile_prefix = '1' + rand(5..7).to_s + rand(0..9).to_s
11
- mobile_prefix = '0' + mobile_prefix if leading_zero
10
+ mobile_prefix = "1#{rand(5..7)}#{rand(0..9)}"
11
+ mobile_prefix = "0#{mobile_prefix}" if leading_zero
12
12
  mobile_prefix
13
13
  end
14
14
 
15
15
  # Region prefixes are in range 02..09 with length of 3 to 5 digits
16
16
  def region_prefix(leading_zero = true)
17
17
  region_prefix = rand(2..9).to_s + FFaker.numerify('#' * rand(1..3)).to_s
18
- region_prefix = '0' + region_prefix if leading_zero
18
+ region_prefix = "0#{region_prefix}" if leading_zero
19
19
  region_prefix
20
20
  end
21
21
 
data/lib/ffaker/skill.rb CHANGED
@@ -14,7 +14,7 @@ module FFaker
14
14
  end
15
15
 
16
16
  def specialty
17
- format('%s %s', fetch_sample(SPECIALTY_START), fetch_sample(SPECIALTY_END))
17
+ "#{fetch_sample(SPECIALTY_START)} #{fetch_sample(SPECIALTY_END)}"
18
18
  end
19
19
 
20
20
  def specialties(num = 3)
data/lib/ffaker/ssn.rb CHANGED
@@ -15,8 +15,10 @@ module FFaker
15
15
  second_group = rand(1..99)
16
16
  third_group = rand(1..9999)
17
17
 
18
- group_numbers = [first_group, second_group, third_group]
19
- format('%.3d-%.2d-%.4d', *group_numbers)
18
+ format(
19
+ '%<first_group>.3d-%<second_group>.2d-%<third_group>.4d',
20
+ first_group: first_group, second_group: second_group, third_group: third_group
21
+ )
20
22
  end
21
23
  end
22
24
  end
data/lib/ffaker/ssn_se.rb CHANGED
@@ -54,7 +54,7 @@ module FFaker
54
54
  end
55
55
 
56
56
  def random_birth_time_between(from = ::Time.local(1940, 1, 1), to = ::Time.now)
57
- ::Time.at(from + rand * (to.to_f - from.to_f))
57
+ ::Time.at(from + (rand * (to.to_f - from.to_f)))
58
58
  end
59
59
 
60
60
  def random_region_for(gender)
@@ -70,7 +70,7 @@ module FFaker
70
70
  end
71
71
 
72
72
  def random_region_odd
73
- rand(0..498) * 2 + 1
73
+ (rand(0..498) * 2) + 1
74
74
  end
75
75
 
76
76
  def three_character_string(number)
data/lib/ffaker/string.rb CHANGED
@@ -21,7 +21,7 @@ module FFaker
21
21
  @last_token = nil
22
22
 
23
23
  # Drop surrounding /'s and split into characters
24
- tokens = exp.inspect[1...-1].split(//)
24
+ tokens = exp.inspect[1...-1].chars
25
25
  result << process_token(tokens) until tokens.empty?
26
26
 
27
27
  result
data/lib/ffaker/time.rb CHANGED
@@ -25,14 +25,14 @@ module FFaker
25
25
  latest_year = params[:year_latest] || 0
26
26
  year = (rand * years_back).ceil + (::DateTime.now.year - latest_year - years_back)
27
27
  month = rand(1..12)
28
- day = rand(1..Date.new(year, month, -1).day)
28
+ day = rand(1..::Date.new(year, month, -1).day)
29
29
  hours = params[:hours] || rand(0..23)
30
30
  minutes = params[:minutes] || rand(0..59)
31
31
  series = [date = ::DateTime.new(year, month, day, hours, minutes)]
32
32
  return date unless params[:series]
33
33
 
34
34
  params[:series].each do |some_time_after|
35
- series << series.last + (rand * some_time_after).ceil
35
+ series << (series.last + (rand * some_time_after).ceil)
36
36
  end
37
37
  series
38
38
  end
@@ -44,7 +44,7 @@ module FFaker
44
44
  def between(from, to)
45
45
  from_value = convert_to_time(from)
46
46
  to_value = convert_to_time(to)
47
- ::Time.at(from_value + rand * (to_value.to_f - from_value.to_f))
47
+ ::Time.at(from_value + (rand * (to_value.to_f - from_value.to_f)))
48
48
  end
49
49
 
50
50
  private