ffaker 2.22.0 → 2.24.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 (74) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +129 -17
  3. data/Gemfile +15 -0
  4. data/README.md +3 -2
  5. data/REFERENCE.md +893 -866
  6. data/Rakefile +7 -7
  7. data/ffaker.gemspec +2 -6
  8. data/lib/ffaker/address.rb +4 -4
  9. data/lib/ffaker/address_fr.rb +3 -5
  10. data/lib/ffaker/address_it.rb +1 -4
  11. data/lib/ffaker/avatar.rb +11 -3
  12. data/lib/ffaker/bank.rb +1 -1
  13. data/lib/ffaker/bank_us.rb +37 -0
  14. data/lib/ffaker/book.rb +10 -2
  15. data/lib/ffaker/cheesy_lingo.rb +2 -2
  16. data/lib/ffaker/code.rb +1 -1
  17. data/lib/ffaker/company.rb +1 -1
  18. data/lib/ffaker/company_fr.rb +1 -1
  19. data/lib/ffaker/crypto.rb +14 -0
  20. data/lib/ffaker/date.rb +9 -0
  21. data/lib/ffaker/filesystem.rb +12 -2
  22. data/lib/ffaker/guid.rb +7 -1
  23. data/lib/ffaker/identification_br.rb +2 -11
  24. data/lib/ffaker/identification_ec.rb +1 -1
  25. data/lib/ffaker/identification_es_cl.rb +1 -1
  26. data/lib/ffaker/identification_kr.rb +10 -3
  27. data/lib/ffaker/identification_pl.rb +2 -2
  28. data/lib/ffaker/image.rb +28 -4
  29. data/lib/ffaker/lorem_ja.rb +1 -1
  30. data/lib/ffaker/lorem_ru.rb +1 -1
  31. data/lib/ffaker/movie.rb +1 -1
  32. data/lib/ffaker/name_fr.rb +4 -3
  33. data/lib/ffaker/name_pl.rb +2 -2
  34. data/lib/ffaker/number.rb +4 -0
  35. data/lib/ffaker/phone_number_de.rb +3 -3
  36. data/lib/ffaker/skill.rb +1 -1
  37. data/lib/ffaker/ssn.rb +4 -2
  38. data/lib/ffaker/string.rb +1 -1
  39. data/lib/ffaker/utils/module_utils.rb +8 -17
  40. data/lib/ffaker/utils/unique_utils.rb +9 -5
  41. data/lib/ffaker/uuid.rb +175 -0
  42. data/lib/ffaker/version.rb +1 -1
  43. data/lib/ffaker.rb +61 -191
  44. data/scripts/reference.rb +8 -10
  45. data/test/helper.rb +5 -5
  46. data/test/test_avatar.rb +30 -7
  47. data/test/test_bank_us.rb +37 -0
  48. data/test/test_book.rb +29 -0
  49. data/test/test_crypto.rb +15 -0
  50. data/test/test_date.rb +11 -1
  51. data/test/test_filesystem.rb +28 -2
  52. data/test/test_guid.rb +1 -1
  53. data/test/test_healthcare_ru.rb +1 -1
  54. data/test/test_identification.rb +12 -2
  55. data/test/test_identification_ec.rb +1 -1
  56. data/test/test_identification_es_mx.rb +3 -1
  57. data/test/test_identification_it.rb +12 -1
  58. data/test/test_identification_kr.rb +3 -3
  59. data/test/test_image.rb +51 -5
  60. data/test/test_internet.rb +3 -1
  61. data/test/test_internet_se.rb +3 -1
  62. data/test/test_lorem_br.rb +1 -1
  63. data/test/test_lorem_ru.rb +1 -1
  64. data/test/test_lorem_ua.rb +1 -1
  65. data/test/test_module_utils.rb +9 -0
  66. data/test/test_name_ua.rb +1 -1
  67. data/test/test_number.rb +13 -1
  68. data/test/test_phone_number_nl.rb +1 -1
  69. data/test/test_unique_utils.rb +4 -0
  70. data/test/test_units.rb +6 -6
  71. data/test/test_units_english.rb +15 -15
  72. data/test/test_units_metric.rb +15 -15
  73. data/test/test_uuid.rb +73 -0
  74. metadata +13 -49
data/test/test_uuid.rb ADDED
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'helper'
4
+
5
+ class TestUUID < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(
9
+ FFaker::UUID,
10
+ :uuidv4, :uuidv6, :uuidv7, :uuidv8
11
+ )
12
+
13
+ def setup
14
+ @tester = FFaker::UUID
15
+ end
16
+
17
+ # @see https://stackoverflow.com/a/38191104
18
+ def test_uuidv4
19
+ raw_uuid = @tester.uuidv4
20
+ assert_format(raw_uuid)
21
+
22
+ uuid = uuid_to_integer(raw_uuid)
23
+ assert_version(uuid, 0b0100)
24
+ assert_variant(uuid, 0b10)
25
+ end
26
+
27
+ def test_uuidv6
28
+ raw_uuid = @tester.uuidv6
29
+ assert_format(raw_uuid)
30
+
31
+ uuid = uuid_to_integer(raw_uuid)
32
+ assert_version(uuid, 0b0110)
33
+ assert_variant(uuid, 0b10)
34
+ end
35
+
36
+ def test_uuidv7
37
+ raw_uuid = @tester.uuidv7
38
+ assert_format(raw_uuid)
39
+
40
+ uuid = uuid_to_integer(raw_uuid)
41
+ assert_version(uuid, 0b0111)
42
+ assert_variant(uuid, 0b10)
43
+ end
44
+
45
+ def test_uuidv8
46
+ raw_uuid = @tester.uuidv8
47
+ assert_format(raw_uuid)
48
+
49
+ uuid = uuid_to_integer(raw_uuid)
50
+ assert_version(uuid, 0b1000)
51
+ assert_variant(uuid, 0b10)
52
+ end
53
+
54
+ private
55
+
56
+ # Matches structure of all UUID versions.
57
+ def assert_format(uuid)
58
+ assert_match(/\A[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\z/,
59
+ uuid)
60
+ end
61
+
62
+ def assert_version(uuid, version)
63
+ assert_equal(version, (uuid >> 76) & 0b1111)
64
+ end
65
+
66
+ def assert_variant(uuid, variant)
67
+ assert_equal(variant, (uuid >> 62) & 0b11)
68
+ end
69
+
70
+ def uuid_to_integer(uuid)
71
+ uuid.delete('-').to_i(16)
72
+ end
73
+ end
metadata CHANGED
@@ -1,58 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.22.0
4
+ version: 2.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - https://github.com/ffaker/ffaker/graphs/contributors
8
8
  - Emmanuel Oga
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-08-23 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rake
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - "~>"
19
- - !ruby/object:Gem::Version
20
- version: '13.0'
21
- type: :development
22
- prerelease: false
23
- version_requirements: !ruby/object:Gem::Requirement
24
- requirements:
25
- - - "~>"
26
- - !ruby/object:Gem::Version
27
- version: '13.0'
28
- - !ruby/object:Gem::Dependency
29
- name: rubocop
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: '0'
35
- type: :development
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- version: '0'
42
- - !ruby/object:Gem::Dependency
43
- name: test-unit
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: '0'
49
- type: :development
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: '0'
12
+ date: 2025-02-02 00:00:00.000000000 Z
13
+ dependencies: []
56
14
  description: Ffaker generates dummy data.
57
15
  email: EmmanuelOga@gmail.com
58
16
  executables: []
@@ -110,6 +68,7 @@ files:
110
68
  - lib/ffaker/aws.rb
111
69
  - lib/ffaker/bacon_ipsum.rb
112
70
  - lib/ffaker/bank.rb
71
+ - lib/ffaker/bank_us.rb
113
72
  - lib/ffaker/book.rb
114
73
  - lib/ffaker/boolean.rb
115
74
  - lib/ffaker/cheesy_lingo.rb
@@ -125,6 +84,7 @@ files:
125
84
  - lib/ffaker/company_se.rb
126
85
  - lib/ffaker/conference.rb
127
86
  - lib/ffaker/courses_fr.rb
87
+ - lib/ffaker/crypto.rb
128
88
  - lib/ffaker/currency.rb
129
89
  - lib/ffaker/data/address/city_suffixes
130
90
  - lib/ffaker/data/address/country
@@ -627,6 +587,7 @@ files:
627
587
  - lib/ffaker/utils/module_utils.rb
628
588
  - lib/ffaker/utils/random_utils.rb
629
589
  - lib/ffaker/utils/unique_utils.rb
590
+ - lib/ffaker/uuid.rb
630
591
  - lib/ffaker/vehicle.rb
631
592
  - lib/ffaker/venue.rb
632
593
  - lib/ffaker/version.rb
@@ -675,6 +636,7 @@ files:
675
636
  - test/test_aws.rb
676
637
  - test/test_bacon_ipsum.rb
677
638
  - test/test_bank.rb
639
+ - test/test_bank_us.rb
678
640
  - test/test_book.rb
679
641
  - test/test_boolean.rb
680
642
  - test/test_cheesy_lingo.rb
@@ -691,6 +653,7 @@ files:
691
653
  - test/test_conference.rb
692
654
  - test/test_course_mathematiques.rb
693
655
  - test/test_course_philosophie.rb
656
+ - test/test_crypto.rb
694
657
  - test/test_currency.rb
695
658
  - test/test_date.rb
696
659
  - test/test_dizzle_ipsum.rb
@@ -826,6 +789,7 @@ files:
826
789
  - test/test_units.rb
827
790
  - test/test_units_english.rb
828
791
  - test/test_units_metric.rb
792
+ - test/test_uuid.rb
829
793
  - test/test_vehicle.rb
830
794
  - test/test_venue.rb
831
795
  - test/test_youtube.rb
@@ -836,7 +800,7 @@ metadata:
836
800
  changelog_uri: https://github.com/ffaker/ffaker/blob/main/Changelog.md
837
801
  documentation_uri: https://github.com/ffaker/ffaker/blob/main/REFERENCE.md
838
802
  rubygems_mfa_required: 'true'
839
- post_install_message:
803
+ post_install_message:
840
804
  rdoc_options:
841
805
  - "--charset=UTF-8"
842
806
  require_paths:
@@ -852,8 +816,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
852
816
  - !ruby/object:Gem::Version
853
817
  version: '0'
854
818
  requirements: []
855
- rubygems_version: 3.4.10
856
- signing_key:
819
+ rubygems_version: 3.4.19
820
+ signing_key:
857
821
  specification_version: 4
858
822
  summary: Ffaker generates dummy data.
859
823
  test_files: []