ffaker 2.24.0 → 2.25.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.
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FFaker
4
+ module IdentificationFI
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ CHECK_DIGITS = '0123456789ABCDEFHJKLMNPRSTUVWXY'
9
+ # Number ranges in real use
10
+ POSSIBLY_REAL_FEMALE_INDIVIDUAL_NUMBERS = (2..898).step(2).to_a.freeze
11
+ POSSIBLY_REAL_MALE_INDIVIDUAL_NUMBERS = (3..899).step(2).to_a.freeze
12
+ # Number ranges not in real use
13
+ FAKE_FEMALE_INDIVIDUAL_NUMBERS = (900..998).step(2).to_a.freeze
14
+ FAKE_MALE_INDIVIDUAL_NUMBERS = (901..999).step(2).to_a.freeze
15
+
16
+ def identity_number(gender: FFaker::Gender.binary, birthday: FFaker::Date.birthday, fake: true)
17
+ day = fetch_formatted_day(birthday)
18
+ month = fetch_formatted_month(birthday)
19
+ year = fetch_formatted_year(birthday)
20
+ separator = fetch_separator(birthday)
21
+ individual_number = fetch_individual_number(gender, fake)
22
+ check_digit = calculate_check_digit(birthday, individual_number)
23
+ "#{day}#{month}#{year}#{separator}#{individual_number}#{check_digit}"
24
+ end
25
+
26
+ private
27
+
28
+ def fetch_formatted_day(birthday)
29
+ format('%.2d', birthday.day)
30
+ end
31
+
32
+ def fetch_formatted_month(birthday)
33
+ format('%.2d', birthday.month)
34
+ end
35
+
36
+ def fetch_formatted_year(birthday)
37
+ check_birth_year(birthday.year)
38
+ birthday.strftime('%y')
39
+ end
40
+
41
+ def fetch_separator(birthday)
42
+ case birthday.year
43
+ when ..1899
44
+ '+'
45
+ when 1900..1999
46
+ '-'
47
+ else
48
+ 'A'
49
+ end
50
+ end
51
+
52
+ def fetch_individual_number(gender, fake)
53
+ numbers_range = if gender == 'female'
54
+ fake ? FAKE_FEMALE_INDIVIDUAL_NUMBERS : POSSIBLY_REAL_FEMALE_INDIVIDUAL_NUMBERS
55
+ else
56
+ fake ? FAKE_MALE_INDIVIDUAL_NUMBERS : POSSIBLY_REAL_MALE_INDIVIDUAL_NUMBERS
57
+ end
58
+ format('%.3d', fetch_sample(numbers_range))
59
+ end
60
+
61
+ def calculate_check_digit(birthday, individual_number)
62
+ digit = "#{birthday.day}#{fetch_formatted_month(birthday)}#{fetch_formatted_year(birthday)}#{individual_number}"
63
+ .to_i % 31
64
+ CHECK_DIGITS[digit]
65
+ end
66
+
67
+ def check_birth_year(birth_year)
68
+ return if birth_year.between?(1799, 2100)
69
+
70
+ raise ArgumentError, "Birth year: #{birth_year} is not between supported 1799 and 2100 range"
71
+ end
72
+ end
73
+ end
@@ -27,7 +27,7 @@ module FFaker
27
27
  def rfc_persona_moral
28
28
  consonants_n_amp = CONSONANTS + ['Ñ', '&']
29
29
  all_letters = consonants_n_amp + VOWELS
30
- [fetch_sample(all_letters, count: 3), date, fetch_sample(HOMOCLAVE, count: 3)].flatten.join
30
+ [*fetch_sample(all_letters, count: 3), date, *fetch_sample(HOMOCLAVE, count: 3)].join
31
31
  end
32
32
 
33
33
  # http://es.wikipedia.org/wiki/Registro_Federal_de_Contribuyentes_(M%C3%A9xico)
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FFaker
4
+ module JobTW
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def title
9
+ fetch_sample(JOB_NOUNS)
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FFaker
4
+ module LoremTW
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def word
9
+ fetch_sample(WORDS)
10
+ end
11
+
12
+ def words(num = 3)
13
+ fetch_sample(WORDS, count: num)
14
+ end
15
+
16
+ def sentence(word_count = 4)
17
+ s = words(word_count + rand(0..5))
18
+ s = s.join
19
+ "#{s},"
20
+ end
21
+
22
+ def sentences(sentence_count = 3)
23
+ s = (1..sentence_count).map { sentence }
24
+ def s.to_s
25
+ result = join(' ')
26
+ result[-1] = '。'
27
+ result
28
+ end
29
+ s
30
+ end
31
+
32
+ def paragraph(sentence_count = 3)
33
+ sentences(sentence_count + rand(0..2)).to_s
34
+ end
35
+
36
+ def paragraphs(paragraph_count = 3)
37
+ (1..paragraph_count).map { paragraph }
38
+ end
39
+ end
40
+ end
data/lib/ffaker/tweet.rb CHANGED
@@ -19,7 +19,7 @@ module FFaker
19
19
  }.merge(args)
20
20
 
21
21
  my_reply = options[:reply] ? "#{mention} " : ''
22
- my_mentions = (options[:num_mentions]).positive? ? "#{mentions(options[:num_mentions])} " : ''
22
+ my_mentions = options[:num_mentions].positive? ? "#{mentions(options[:num_mentions])} " : ''
23
23
  my_tags = tags(options[:num_hashtags])
24
24
 
25
25
  remaining = [
@@ -14,7 +14,7 @@ module FFaker
14
14
 
15
15
  def const_missing(const_name)
16
16
  if const_name.match?(/[a-z]/) # Not a constant, probably a class/module name.
17
- super(const_name)
17
+ super
18
18
  else
19
19
  mod_name = ancestors.first.to_s.split('::').last
20
20
  data_path = "#{FFaker::BASE_LIB_PATH}/ffaker/data/#{underscore(mod_name)}/#{underscore(const_name.to_s)}"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FFaker
4
- VERSION = '2.24.0'
4
+ VERSION = '2.25.0'
5
5
  end
@@ -41,7 +41,7 @@ class TestAddressUA < Test::Unit::TestCase
41
41
  end
42
42
 
43
43
  def test_street_address_with_secondary
44
- assert_match( \
44
+ assert_match(
45
45
  /\Aвул\.\s[а-яА-ЯіїєґІЇЄҐ’\-\s]+,\s\d{1,3},\sкв\.\s\d{1,3}\z/,
46
46
  @tester.street_address(true)
47
47
  )
@@ -89,7 +89,7 @@ class TestArrayUtils < Test::Unit::TestCase
89
89
 
90
90
  private
91
91
 
92
- # Supress the deprecation warning that some methods output, so we get less
92
+ # Suppress the deprecation warning that some methods output, so we get less
93
93
  # noise in our test run.
94
94
  def supress_warn_output
95
95
  original_verbosity = $VERBOSE
data/test/test_bank.rb CHANGED
@@ -7,7 +7,7 @@ class TestBank < Test::Unit::TestCase
7
7
 
8
8
  assert_methods_are_deterministic(
9
9
  FFaker::Bank,
10
- :iban, :card_number, :card_expiry_date, :card_type
10
+ :iban, :card_number, :card_expiry_date, :card_type, :loan_interest_rate, :loan_term, :loan_amount
11
11
  )
12
12
 
13
13
  def setup
@@ -50,4 +50,18 @@ class TestBank < Test::Unit::TestCase
50
50
  def test_card_type
51
51
  assert_include @tester::CARD_TYPES, @tester.card_type
52
52
  end
53
+
54
+ def test_loan_interest_rate
55
+ rate = FFaker::Bank.loan_interest_rate
56
+ assert(rate.to_f.between?(1.5, 15.0), "Rate #{rate} is out of bounds")
57
+ end
58
+
59
+ def test_loan_term
60
+ assert_includes([12, 24, 36, 48, 60, 72, 84], FFaker::Bank.loan_term)
61
+ end
62
+
63
+ def test_loan_amount
64
+ amount = FFaker::Bank.loan_amount
65
+ assert(amount.between?(1_000, 100_000), "Amount #{amount} is out of bounds")
66
+ end
53
67
  end
data/test/test_boolean.rb CHANGED
@@ -5,10 +5,41 @@ require_relative 'helper'
5
5
  class TestBoolean < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- assert_methods_are_deterministic(FFaker::Boolean, :maybe)
8
+ assert_methods_are_deterministic(FFaker::Boolean, :maybe, :boolean)
9
9
 
10
10
  def test_maybe
11
11
  maybe = FFaker::Boolean.maybe
12
12
  assert [true, false].include?(maybe)
13
13
  end
14
+
15
+ def test_boolean_with_default_ratio
16
+ true_count = 0
17
+ 1000.times do
18
+ true_count += 1 if FFaker::Boolean.boolean
19
+ end
20
+ assert_in_delta 0.5, true_count / 1000.0, 0.1
21
+ end
22
+
23
+ def test_boolean_with_true_ratio
24
+ true_ratio = 0.8
25
+ true_count = 0
26
+ 1000.times do
27
+ true_count += 1 if FFaker::Boolean.boolean(true_ratio: true_ratio)
28
+ end
29
+ assert_in_delta true_ratio, true_count / 1000.0, 0.1
30
+ end
31
+
32
+ def test_boolean_with_true_ratio_zero
33
+ true_ratio = 0
34
+ 100.times do
35
+ assert_equal false, FFaker::Boolean.boolean(true_ratio: true_ratio)
36
+ end
37
+ end
38
+
39
+ def test_boolean_with_true_ratio_one
40
+ true_ratio = 1
41
+ 100.times do
42
+ assert_equal true, FFaker::Boolean.boolean(true_ratio: true_ratio)
43
+ end
44
+ end
14
45
  end
data/test/test_date.rb CHANGED
@@ -22,16 +22,16 @@ class TestFakerDate < Test::Unit::TestCase
22
22
  def test_backward
23
23
  today = Date.today
24
24
 
25
- assert_random_between(today - 365..today - 1) { @tester.backward }
26
- assert_random_between(today - 30..today - 1) { @tester.backward(30) }
25
+ assert_random_between((today - 365)..(today - 1)) { @tester.backward }
26
+ assert_random_between((today - 30)..(today - 1)) { @tester.backward(30) }
27
27
  assert_instance_of Date, @tester.backward
28
28
  end
29
29
 
30
30
  def test_forward
31
31
  today = Date.today
32
32
 
33
- assert_random_between(today + 1..today + 365) { @tester.forward }
34
- assert_random_between(today + 1..today + 30) { @tester.forward(30) }
33
+ assert_random_between((today + 1)..(today + 365)) { @tester.forward }
34
+ assert_random_between((today + 1)..(today + 30)) { @tester.forward(30) }
35
35
  assert_instance_of Date, @tester.forward
36
36
  end
37
37
 
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'helper'
4
+
5
+ class TestFakerIdentificationFI < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(
9
+ FFaker::IdentificationFI,
10
+ :identity_number
11
+ )
12
+
13
+ def setup
14
+ @tester = FFaker::IdentificationFI
15
+ end
16
+
17
+ def test_identity_number
18
+ general_regex = /^(0[1-9]|[1-2]\d|3[01])(0[1-9]|1[0-2])(\d\d)([-+A-FU-Y])(\d\d\d)([0-9A-FHJ-NPR-Y])$/
19
+ assert_match(general_regex, @tester.identity_number)
20
+ random_far_past_date = rand(Date.civil(1700)..Date.civil(1800))
21
+ assert_raises ArgumentError do
22
+ @tester.identity_number(birthday: random_far_past_date)
23
+ end
24
+ random_far_future_date = rand(Date.civil(2100)..Date.civil(2200))
25
+ assert_raises ArgumentError do
26
+ @tester.identity_number(birthday: random_far_future_date)
27
+ end
28
+ date_match_regex = /^010100A(\d\d\d)([0-9A-FHJ-NPR-Y])$/
29
+ assert_match(date_match_regex, @tester.identity_number(birthday: Date.civil(2000, 1, 1)))
30
+ fake_number_match_regex = /^(0[1-9]|[1-2]\d|3[01])(0[1-9]|1[0-2])(\d\d)([-+A-FU-Y])9(\d\d)([0-9A-FHJ-NPR-Y])$/
31
+ assert_match(fake_number_match_regex, @tester.identity_number(fake: true))
32
+ real_number_match_regex = /^(0[1-9]|[1-2]\d|3[01])(0[1-9]|1[0-2])(\d\d)([-+A-FU-Y])([0-8])(\d\d)([0-9A-FHJ-NPR-Y])$/
33
+ assert_match(real_number_match_regex, @tester.identity_number(fake: false))
34
+ female_match_regex = /^(0[1-9]|[1-2]\d|3[01])(0[1-9]|1[0-2])(\d\d)([-+A-FU-Y])(\d\d)([02468])([0-9A-FHJ-NPR-Y])$/
35
+ assert_match(female_match_regex, @tester.identity_number(gender: 'female'))
36
+ male_match_regex = /^(0[1-9]|[1-2]\d|3[01])(0[1-9]|1[0-2])(\d\d)([-+A-FU-Y])(\d\d)([13579])([0-9A-FHJ-NPR-Y])$/
37
+ assert_match(male_match_regex, @tester.identity_number(gender: 'male'))
38
+ end
39
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'helper'
4
+
5
+ class TestFakerJobTW < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::JobTW, :title)
9
+
10
+ def setup
11
+ @tester = FFaker::JobTW
12
+ end
13
+
14
+ def test_title
15
+ assert_greater_than_or_equal_to @tester.title.length, 1
16
+ end
17
+
18
+ def test_nouns
19
+ assert_kind_of Array, @tester::JOB_NOUNS
20
+ end
21
+ end
@@ -10,9 +10,9 @@ class TestLoremBR < Test::Unit::TestCase
10
10
  :paragraph, :sentence, :phrase, :paragraphs, :sentences, :phrases, :words, :word, :characters
11
11
  )
12
12
 
13
- CHARACTERS = /\A[A-zÀ-ü0-9]+\z/i
14
- WORD = /\A[A-zÀ-ü-]+\z/i
15
- WORDS = /[ A-zÀ-ü\-.]+/i
13
+ CHARACTERS = /\A[A-Za-zÀ-ü0-9]+\z/i
14
+ WORD = /\A[A-Za-zÀ-ü-]+\z/i
15
+ WORDS = /[ A-Za-zÀ-ü\-.]+/i
16
16
 
17
17
  def test_paragraph
18
18
  assert_match(WORDS, FFaker::LoremBR.paragraph)
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'helper'
4
+
5
+ class TestLoremTW < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(
9
+ FFaker::LoremTW,
10
+ :paragraph, :paragraphs, :sentence, :sentences, :word, :words
11
+ )
12
+
13
+ def test_paragraph
14
+ assert_greater_than_or_equal_to FFaker::LoremTW.paragraph.length, 3 * 4 * 2
15
+ end
16
+
17
+ def test_sentence
18
+ assert_greater_than_or_equal_to FFaker::LoremTW.sentence.length, 4 * 2
19
+ end
20
+
21
+ def test_paragraphs
22
+ assert_greater_than_or_equal_to FFaker::LoremTW.paragraphs.length, 2
23
+ end
24
+
25
+ def test_paragraphs_is_not_a_string_representation_of_an_array
26
+ assert !/[\[\]]+/.match([FFaker::LoremTW.paragraphs].flatten.join(' '))
27
+ end
28
+
29
+ def test_paragraphs_is_an_array
30
+ assert FFaker::LoremTW.paragraphs.instance_of?(Array)
31
+ end
32
+
33
+ def test_sentences
34
+ assert_greater_than_or_equal_to FFaker::LoremTW.sentences.length, 2
35
+ end
36
+
37
+ def test_sentences_is_an_array
38
+ assert FFaker::LoremTW.sentences.instance_of?(Array)
39
+ end
40
+
41
+ def test_sentences_via_to_s_produces_string_terminated_with_period
42
+ string = FFaker::LoremTW.sentences.to_s
43
+ assert string.instance_of?(String)
44
+ assert string =~ /。$/
45
+ end
46
+
47
+ def test_words
48
+ assert_greater_than_or_equal_to FFaker::LoremTW.words.length, 2
49
+ end
50
+
51
+ def test_word
52
+ assert_greater_than_or_equal_to FFaker::LoremTW.word.length, 1
53
+ end
54
+ end
data/test/test_music.rb CHANGED
@@ -11,18 +11,18 @@ class TestMusic < Test::Unit::TestCase
11
11
  )
12
12
 
13
13
  def test_genre
14
- assert_match(%r{[A-z]|\W|&/+}, FFaker::Music.genre)
14
+ assert_match(%r{[A-Za-z]|\W|&/+}, FFaker::Music.genre)
15
15
  end
16
16
 
17
17
  def test_album
18
- assert_match(/\s|[A-z]|\W|\d|'|\?+/, FFaker::Music.album)
18
+ assert_match(/\s|[A-Za-z]|\W|\d|'|\?+/, FFaker::Music.album)
19
19
  end
20
20
 
21
21
  def test_artist
22
- assert_match(/\s|[A-z]|\W|\d|'|\?|&|\+|\.|-+/, FFaker::Music.artist)
22
+ assert_match(/\s|[A-Za-z]|\W|\d|'|\?|&|\+|\.|-+/, FFaker::Music.artist)
23
23
  end
24
24
 
25
25
  def test_song
26
- assert_match(/\s|[A-z]|\W|\d|'|\?|&|\+|\.|-+/, FFaker::Music.song)
26
+ assert_match(/\s|[A-Za-z]|\W|\d|'|\?|&|\+|\.|-+/, FFaker::Music.song)
27
27
  end
28
28
  end
data/test/test_number.rb CHANGED
@@ -13,7 +13,7 @@ class TestNumber < Test::Unit::TestCase
13
13
 
14
14
  def test_number
15
15
  assert @tester.number.is_a?(Integer)
16
- assert @tester.number.digits.count == 1
16
+ assert @tester.number.digits.one?
17
17
  assert @tester.number(digits: 3).digits.count == 3
18
18
  assert_match(/\d/, @tester.number.to_s)
19
19
  assert_match(/\d{3}/, @tester.number(digits: 3).to_s)
data/test/test_ssn_se.rb CHANGED
@@ -24,7 +24,7 @@ class TestSSNSE < Test::Unit::TestCase
24
24
  assert equal?(ssn_female[10].to_i)
25
25
 
26
26
  assert_raise ArgumentError do
27
- FFaker::SSNSE.ssn(gender: :unkown)
27
+ FFaker::SSNSE.ssn(gender: :unknown)
28
28
  end
29
29
  end
30
30
 
data/test/test_vehicle.rb CHANGED
@@ -94,7 +94,6 @@ class TestVehicle < Test::Unit::TestCase
94
94
  end
95
95
 
96
96
  check_digit = weighted_sum % 11
97
- check_digit == '10' ? 'X' : check_digit
98
97
  check_digit = 'X' if check_digit == 10
99
98
  check_digit.to_s
100
99
  end
metadata CHANGED
@@ -1,24 +1,23 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.24.0
4
+ version: 2.25.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - https://github.com/ffaker/ffaker/graphs/contributors
8
8
  - Emmanuel Oga
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2025-02-02 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: Ffaker generates dummy data.
15
14
  email: EmmanuelOga@gmail.com
16
15
  executables: []
17
16
  extensions: []
18
17
  extra_rdoc_files:
19
- - README.md
20
- - LICENSE
21
18
  - Changelog.md
19
+ - LICENSE
20
+ - README.md
22
21
  files:
23
22
  - Changelog.md
24
23
  - Gemfile
@@ -280,6 +279,7 @@ files:
280
279
  - lib/ffaker/data/job_it/job_prefix
281
280
  - lib/ffaker/data/job_ja/job_nouns
282
281
  - lib/ffaker/data/job_kr/job_nouns
282
+ - lib/ffaker/data/job_tw/job_nouns
283
283
  - lib/ffaker/data/job_vn/job_nouns
284
284
  - lib/ffaker/data/locale/language
285
285
  - lib/ffaker/data/locale/language_code
@@ -306,6 +306,7 @@ files:
306
306
  - lib/ffaker/data/lorem_ru/capital_chars
307
307
  - lib/ffaker/data/lorem_ru/chars
308
308
  - lib/ffaker/data/lorem_ru/words
309
+ - lib/ffaker/data/lorem_tw/words
309
310
  - lib/ffaker/data/lorem_ua/capital_chars
310
311
  - lib/ffaker/data/lorem_ua/chars
311
312
  - lib/ffaker/data/lorem_ua/words
@@ -481,6 +482,7 @@ files:
481
482
  - lib/ffaker/identification_es.rb
482
483
  - lib/ffaker/identification_es_cl.rb
483
484
  - lib/ffaker/identification_es_co.rb
485
+ - lib/ffaker/identification_fi.rb
484
486
  - lib/ffaker/identification_in.rb
485
487
  - lib/ffaker/identification_it.rb
486
488
  - lib/ffaker/identification_kr.rb
@@ -498,6 +500,7 @@ files:
498
500
  - lib/ffaker/job_it.rb
499
501
  - lib/ffaker/job_ja.rb
500
502
  - lib/ffaker/job_kr.rb
503
+ - lib/ffaker/job_tw.rb
501
504
  - lib/ffaker/job_vn.rb
502
505
  - lib/ffaker/locale.rb
503
506
  - lib/ffaker/lorem.rb
@@ -511,6 +514,7 @@ files:
511
514
  - lib/ffaker/lorem_kr.rb
512
515
  - lib/ffaker/lorem_pl.rb
513
516
  - lib/ffaker/lorem_ru.rb
517
+ - lib/ffaker/lorem_tw.rb
514
518
  - lib/ffaker/lorem_ua.rb
515
519
  - lib/ffaker/movie.rb
516
520
  - lib/ffaker/music.rb
@@ -688,6 +692,7 @@ files:
688
692
  - test/test_identification_es.rb
689
693
  - test/test_identification_es_cl.rb
690
694
  - test/test_identification_es_mx.rb
695
+ - test/test_identification_fi.rb
691
696
  - test/test_identification_in.rb
692
697
  - test/test_identification_it.rb
693
698
  - test/test_identification_kr.rb
@@ -704,6 +709,7 @@ files:
704
709
  - test/test_job_it.rb
705
710
  - test/test_job_ja.rb
706
711
  - test/test_job_kr.rb
712
+ - test/test_job_tw.rb
707
713
  - test/test_job_vn.rb
708
714
  - test/test_locale.rb
709
715
  - test/test_lorem.rb
@@ -717,6 +723,7 @@ files:
717
723
  - test/test_lorem_kr.rb
718
724
  - test/test_lorem_pl.rb
719
725
  - test/test_lorem_ru.rb
726
+ - test/test_lorem_tw.rb
720
727
  - test/test_lorem_ua.rb
721
728
  - test/test_module_utils.rb
722
729
  - test/test_movie.rb
@@ -800,7 +807,6 @@ metadata:
800
807
  changelog_uri: https://github.com/ffaker/ffaker/blob/main/Changelog.md
801
808
  documentation_uri: https://github.com/ffaker/ffaker/blob/main/REFERENCE.md
802
809
  rubygems_mfa_required: 'true'
803
- post_install_message:
804
810
  rdoc_options:
805
811
  - "--charset=UTF-8"
806
812
  require_paths:
@@ -809,15 +815,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
809
815
  requirements:
810
816
  - - ">="
811
817
  - !ruby/object:Gem::Version
812
- version: '3.0'
818
+ version: '3.1'
813
819
  required_rubygems_version: !ruby/object:Gem::Requirement
814
820
  requirements:
815
821
  - - ">="
816
822
  - !ruby/object:Gem::Version
817
823
  version: '0'
818
824
  requirements: []
819
- rubygems_version: 3.4.19
820
- signing_key:
825
+ rubygems_version: 3.6.8
821
826
  specification_version: 4
822
827
  summary: Ffaker generates dummy data.
823
828
  test_files: []