ffaker 2.22.0 → 2.24.0

Sign up to get free protection for your applications and to get access to all the features.
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: []