familia 2.0.0.pre7 → 2.0.0.pre10

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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +13 -0
  3. data/.github/workflows/docs.yml +1 -1
  4. data/.gitignore +9 -9
  5. data/.rubocop.yml +19 -0
  6. data/.yardopts +22 -1
  7. data/CHANGELOG.md +184 -0
  8. data/CLAUDE.md +8 -5
  9. data/Gemfile +1 -1
  10. data/Gemfile.lock +3 -3
  11. data/README.md +97 -2
  12. data/changelog.d/README.md +66 -0
  13. data/changelog.d/fragments/.keep +0 -0
  14. data/changelog.d/template.md.j2 +29 -0
  15. data/docs/archive/.gitignore +2 -0
  16. data/docs/archive/FAMILIA_RELATIONSHIPS.md +210 -0
  17. data/docs/archive/FAMILIA_TECHNICAL.md +823 -0
  18. data/docs/archive/FAMILIA_UPDATE.md +226 -0
  19. data/docs/archive/README.md +67 -0
  20. data/docs/guides/.gitignore +2 -0
  21. data/docs/{wiki → guides}/Feature-System-Guide.md +0 -15
  22. data/docs/{wiki → guides}/Relationships-Guide.md +103 -50
  23. data/docs/guides/relationships-methods.md +266 -0
  24. data/examples/relationships_basic.rb +90 -157
  25. data/familia.gemspec +4 -4
  26. data/lib/familia/connection.rb +4 -21
  27. data/lib/familia/features/external_identifiers/external_identifier_field_type.rb +120 -0
  28. data/lib/familia/features/external_identifiers.rb +111 -0
  29. data/lib/familia/features/object_identifiers/object_identifier_field_type.rb +91 -0
  30. data/lib/familia/features/object_identifiers.rb +194 -0
  31. data/lib/familia/features/relationships/cascading.rb +0 -1
  32. data/lib/familia/features/relationships/indexing.rb +160 -176
  33. data/lib/familia/features/relationships/membership.rb +16 -22
  34. data/lib/familia/features/relationships/querying.rb +7 -12
  35. data/lib/familia/features/relationships/score_encoding.rb +1 -3
  36. data/lib/familia/features/relationships/tracking.rb +61 -22
  37. data/lib/familia/features/relationships.rb +15 -8
  38. data/lib/familia/features/transient_fields.rb +8 -10
  39. data/lib/familia/features.rb +16 -13
  40. data/lib/familia/horreum/core/serialization.rb +2 -5
  41. data/lib/familia/horreum/subclass/definition.rb +36 -0
  42. data/lib/familia/horreum.rb +15 -24
  43. data/lib/familia/version.rb +1 -3
  44. data/setup.cfg +12 -0
  45. data/try/core/errors_try.rb +1 -1
  46. data/try/features/{encrypted_fields_core_try.rb → encrypted_fields/encrypted_fields_core_try.rb} +1 -1
  47. data/try/features/{encrypted_fields_integration_try.rb → encrypted_fields/encrypted_fields_integration_try.rb} +1 -1
  48. data/try/features/{encrypted_fields_no_cache_security_try.rb → encrypted_fields/encrypted_fields_no_cache_security_try.rb} +1 -1
  49. data/try/features/{encrypted_fields_security_try.rb → encrypted_fields/encrypted_fields_security_try.rb} +1 -1
  50. data/try/features/{expiration_try.rb → expiration/expiration_try.rb} +1 -1
  51. data/try/features/external_identifiers/external_identifiers_try.rb +203 -0
  52. data/try/features/object_identifiers/object_identifiers_integration_try.rb +289 -0
  53. data/try/features/object_identifiers/object_identifiers_try.rb +191 -0
  54. data/try/features/{quantization_try.rb → quantization/quantization_try.rb} +1 -1
  55. data/try/features/{categorical_permissions_try.rb → relationships/categorical_permissions_try.rb} +1 -1
  56. data/try/features/relationships/relationships_api_changes_try.rb +339 -0
  57. data/try/features/{relationships_edge_cases_try.rb → relationships/relationships_edge_cases_try.rb} +1 -1
  58. data/try/features/{relationships_performance_minimal_try.rb → relationships/relationships_performance_minimal_try.rb} +1 -1
  59. data/try/features/{relationships_performance_simple_try.rb → relationships/relationships_performance_simple_try.rb} +1 -1
  60. data/try/features/{relationships_performance_try.rb → relationships/relationships_performance_try.rb} +1 -1
  61. data/try/features/{relationships_performance_working_try.rb → relationships/relationships_performance_working_try.rb} +1 -1
  62. data/try/features/{relationships_try.rb → relationships/relationships_try.rb} +7 -6
  63. data/try/features/{safe_dump_advanced_try.rb → safe_dump/safe_dump_advanced_try.rb} +1 -1
  64. data/try/features/{safe_dump_try.rb → safe_dump/safe_dump_try.rb} +1 -1
  65. data/try/features/{transient_fields_core_try.rb → transient_fields/transient_fields_core_try.rb} +1 -1
  66. data/try/features/{transient_fields_integration_try.rb → transient_fields/transient_fields_integration_try.rb} +1 -1
  67. metadata +80 -60
  68. /data/docs/{wiki → guides}/API-Reference.md +0 -0
  69. /data/docs/{wiki → guides}/Connection-Pooling-Guide.md +0 -0
  70. /data/docs/{wiki → guides}/Encrypted-Fields-Overview.md +0 -0
  71. /data/docs/{wiki → guides}/Expiration-Feature-Guide.md +0 -0
  72. /data/docs/{wiki → guides}/Features-System-Developer-Guide.md +0 -0
  73. /data/docs/{wiki → guides}/Field-System-Guide.md +0 -0
  74. /data/docs/{wiki → guides}/Home.md +0 -0
  75. /data/docs/{wiki → guides}/Implementation-Guide.md +0 -0
  76. /data/docs/{wiki → guides}/Quantization-Feature-Guide.md +0 -0
  77. /data/docs/{wiki → guides}/Security-Model.md +0 -0
  78. /data/docs/{wiki → guides}/Transient-Fields-Guide.md +0 -0
  79. /data/try/features/{encryption_fields → encrypted_fields}/aad_protection_try.rb +0 -0
  80. /data/try/features/{encryption_fields → encrypted_fields}/concealed_string_core_try.rb +0 -0
  81. /data/try/features/{encryption_fields → encrypted_fields}/context_isolation_try.rb +0 -0
  82. /data/try/features/{encryption_fields → encrypted_fields}/error_conditions_try.rb +0 -0
  83. /data/try/features/{encryption_fields → encrypted_fields}/fresh_key_derivation_try.rb +0 -0
  84. /data/try/features/{encryption_fields → encrypted_fields}/fresh_key_try.rb +0 -0
  85. /data/try/features/{encryption_fields → encrypted_fields}/key_rotation_try.rb +0 -0
  86. /data/try/features/{encryption_fields → encrypted_fields}/memory_security_try.rb +0 -0
  87. /data/try/features/{encryption_fields → encrypted_fields}/missing_current_key_version_try.rb +0 -0
  88. /data/try/features/{encryption_fields → encrypted_fields}/nonce_uniqueness_try.rb +0 -0
  89. /data/try/features/{encryption_fields → encrypted_fields}/secure_by_default_behavior_try.rb +0 -0
  90. /data/try/features/{encryption_fields → encrypted_fields}/thread_safety_try.rb +0 -0
  91. /data/try/features/{encryption_fields → encrypted_fields}/universal_serialization_safety_try.rb +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: familia
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre7
4
+ version: 2.0.0.pre10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delano Mandelbaum
@@ -13,58 +13,58 @@ dependencies:
13
13
  name: benchmark
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - ">="
16
+ - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '0'
18
+ version: '0.1'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
- - - ">="
23
+ - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '0'
25
+ version: '0.1'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: connection_pool
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - ">="
30
+ - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '0'
32
+ version: '2.4'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
37
+ - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0'
39
+ version: '2.4'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: csv
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - ">="
44
+ - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0'
46
+ version: '3.1'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">="
51
+ - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0'
53
+ version: '3.1'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: logger
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ">="
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0'
60
+ version: '1.6'
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - ">="
65
+ - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '0'
67
+ version: '1.6'
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: redis
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -129,27 +129,38 @@ files:
129
129
  - ".rubocop.yml"
130
130
  - ".rubocop_todo.yml"
131
131
  - ".yardopts"
132
+ - CHANGELOG.md
132
133
  - CLAUDE.md
133
134
  - Gemfile
134
135
  - Gemfile.lock
135
136
  - LICENSE.txt
136
137
  - README.md
137
138
  - bin/irb
139
+ - changelog.d/README.md
140
+ - changelog.d/fragments/.keep
141
+ - changelog.d/template.md.j2
142
+ - docs/archive/.gitignore
143
+ - docs/archive/FAMILIA_RELATIONSHIPS.md
144
+ - docs/archive/FAMILIA_TECHNICAL.md
145
+ - docs/archive/FAMILIA_UPDATE.md
146
+ - docs/archive/README.md
138
147
  - docs/connection_pooling.md
148
+ - docs/guides/.gitignore
149
+ - docs/guides/API-Reference.md
150
+ - docs/guides/Connection-Pooling-Guide.md
151
+ - docs/guides/Encrypted-Fields-Overview.md
152
+ - docs/guides/Expiration-Feature-Guide.md
153
+ - docs/guides/Feature-System-Guide.md
154
+ - docs/guides/Features-System-Developer-Guide.md
155
+ - docs/guides/Field-System-Guide.md
156
+ - docs/guides/Home.md
157
+ - docs/guides/Implementation-Guide.md
158
+ - docs/guides/Quantization-Feature-Guide.md
159
+ - docs/guides/Relationships-Guide.md
160
+ - docs/guides/Security-Model.md
161
+ - docs/guides/Transient-Fields-Guide.md
162
+ - docs/guides/relationships-methods.md
139
163
  - docs/overview.md
140
- - docs/wiki/API-Reference.md
141
- - docs/wiki/Connection-Pooling-Guide.md
142
- - docs/wiki/Encrypted-Fields-Overview.md
143
- - docs/wiki/Expiration-Feature-Guide.md
144
- - docs/wiki/Feature-System-Guide.md
145
- - docs/wiki/Features-System-Developer-Guide.md
146
- - docs/wiki/Field-System-Guide.md
147
- - docs/wiki/Home.md
148
- - docs/wiki/Implementation-Guide.md
149
- - docs/wiki/Quantization-Feature-Guide.md
150
- - docs/wiki/Relationships-Guide.md
151
- - docs/wiki/Security-Model.md
152
- - docs/wiki/Transient-Fields-Guide.md
153
164
  - examples/bit_encoding_integration.rb
154
165
  - examples/redis_command_validation_example.rb
155
166
  - examples/relationships_basic.rb
@@ -183,6 +194,10 @@ files:
183
194
  - lib/familia/features/encrypted_fields/concealed_string.rb
184
195
  - lib/familia/features/encrypted_fields/encrypted_field_type.rb
185
196
  - lib/familia/features/expiration.rb
197
+ - lib/familia/features/external_identifiers.rb
198
+ - lib/familia/features/external_identifiers/external_identifier_field_type.rb
199
+ - lib/familia/features/object_identifiers.rb
200
+ - lib/familia/features/object_identifiers/object_identifier_field_type.rb
186
201
  - lib/familia/features/quantization.rb
187
202
  - lib/familia/features/relationships.rb
188
203
  - lib/familia/features/relationships/cascading.rb
@@ -222,6 +237,7 @@ files:
222
237
  - lib/familia/validation/validator.rb
223
238
  - lib/familia/version.rb
224
239
  - lib/middleware/database_middleware.rb
240
+ - setup.cfg
225
241
  - try/configuration/scenarios_try.rb
226
242
  - try/core/base_enhancements_try.rb
227
243
  - try/core/connection_try.rb
@@ -287,42 +303,46 @@ files:
287
303
  - try/encryption/providers/xchacha20_poly1305_provider_try.rb
288
304
  - try/encryption/roundtrip_validation_try.rb
289
305
  - try/encryption/secure_memory_handling_try.rb
290
- - try/features/categorical_permissions_try.rb
291
- - try/features/encrypted_fields_core_try.rb
292
- - try/features/encrypted_fields_integration_try.rb
293
- - try/features/encrypted_fields_no_cache_security_try.rb
294
- - try/features/encrypted_fields_security_try.rb
295
- - try/features/encryption_fields/aad_protection_try.rb
296
- - try/features/encryption_fields/concealed_string_core_try.rb
297
- - try/features/encryption_fields/context_isolation_try.rb
298
- - try/features/encryption_fields/error_conditions_try.rb
299
- - try/features/encryption_fields/fresh_key_derivation_try.rb
300
- - try/features/encryption_fields/fresh_key_try.rb
301
- - try/features/encryption_fields/key_rotation_try.rb
302
- - try/features/encryption_fields/memory_security_try.rb
303
- - try/features/encryption_fields/missing_current_key_version_try.rb
304
- - try/features/encryption_fields/nonce_uniqueness_try.rb
305
- - try/features/encryption_fields/secure_by_default_behavior_try.rb
306
- - try/features/encryption_fields/thread_safety_try.rb
307
- - try/features/encryption_fields/universal_serialization_safety_try.rb
308
- - try/features/expiration_try.rb
306
+ - try/features/encrypted_fields/aad_protection_try.rb
307
+ - try/features/encrypted_fields/concealed_string_core_try.rb
308
+ - try/features/encrypted_fields/context_isolation_try.rb
309
+ - try/features/encrypted_fields/encrypted_fields_core_try.rb
310
+ - try/features/encrypted_fields/encrypted_fields_integration_try.rb
311
+ - try/features/encrypted_fields/encrypted_fields_no_cache_security_try.rb
312
+ - try/features/encrypted_fields/encrypted_fields_security_try.rb
313
+ - try/features/encrypted_fields/error_conditions_try.rb
314
+ - try/features/encrypted_fields/fresh_key_derivation_try.rb
315
+ - try/features/encrypted_fields/fresh_key_try.rb
316
+ - try/features/encrypted_fields/key_rotation_try.rb
317
+ - try/features/encrypted_fields/memory_security_try.rb
318
+ - try/features/encrypted_fields/missing_current_key_version_try.rb
319
+ - try/features/encrypted_fields/nonce_uniqueness_try.rb
320
+ - try/features/encrypted_fields/secure_by_default_behavior_try.rb
321
+ - try/features/encrypted_fields/thread_safety_try.rb
322
+ - try/features/encrypted_fields/universal_serialization_safety_try.rb
323
+ - try/features/expiration/expiration_try.rb
324
+ - try/features/external_identifiers/external_identifiers_try.rb
309
325
  - try/features/feature_dependencies_try.rb
310
- - try/features/quantization_try.rb
326
+ - try/features/object_identifiers/object_identifiers_integration_try.rb
327
+ - try/features/object_identifiers/object_identifiers_try.rb
328
+ - try/features/quantization/quantization_try.rb
311
329
  - try/features/real_feature_integration_try.rb
312
- - try/features/relationships_edge_cases_try.rb
313
- - try/features/relationships_performance_minimal_try.rb
314
- - try/features/relationships_performance_simple_try.rb
315
- - try/features/relationships_performance_try.rb
316
- - try/features/relationships_performance_working_try.rb
317
- - try/features/relationships_try.rb
318
- - try/features/safe_dump_advanced_try.rb
319
- - try/features/safe_dump_try.rb
330
+ - try/features/relationships/categorical_permissions_try.rb
331
+ - try/features/relationships/relationships_api_changes_try.rb
332
+ - try/features/relationships/relationships_edge_cases_try.rb
333
+ - try/features/relationships/relationships_performance_minimal_try.rb
334
+ - try/features/relationships/relationships_performance_simple_try.rb
335
+ - try/features/relationships/relationships_performance_try.rb
336
+ - try/features/relationships/relationships_performance_working_try.rb
337
+ - try/features/relationships/relationships_try.rb
338
+ - try/features/safe_dump/safe_dump_advanced_try.rb
339
+ - try/features/safe_dump/safe_dump_try.rb
320
340
  - try/features/transient_fields/redacted_string_try.rb
321
341
  - try/features/transient_fields/refresh_reset_try.rb
322
342
  - try/features/transient_fields/simple_refresh_test.rb
323
343
  - try/features/transient_fields/single_use_redacted_string_try.rb
324
- - try/features/transient_fields_core_try.rb
325
- - try/features/transient_fields_integration_try.rb
344
+ - try/features/transient_fields/transient_fields_core_try.rb
345
+ - try/features/transient_fields/transient_fields_integration_try.rb
326
346
  - try/helpers/test_helpers.rb
327
347
  - try/horreum/base_try.rb
328
348
  - try/horreum/class_methods_try.rb
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes