familia 2.0.0.pre16 → 2.0.0.pre17

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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +2 -2
  3. data/.github/workflows/{code-smellage.yml → code-smells.yml} +3 -63
  4. data/.gitignore +2 -0
  5. data/.rubocop.yml +6 -0
  6. data/CHANGELOG.rst +22 -0
  7. data/CLAUDE.md +38 -0
  8. data/Gemfile.lock +1 -1
  9. data/docs/archive/FAMILIA_TECHNICAL.md +1 -1
  10. data/docs/overview.md +2 -2
  11. data/docs/reference/api-technical.md +1 -1
  12. data/examples/encrypted_fields.rb +1 -1
  13. data/examples/safe_dump.rb +1 -1
  14. data/lib/familia/base.rb +6 -4
  15. data/lib/familia/data_type/class_methods.rb +63 -0
  16. data/lib/familia/data_type/connection.rb +83 -0
  17. data/lib/familia/data_type/settings.rb +96 -0
  18. data/lib/familia/data_type/types/hashkey.rb +2 -1
  19. data/lib/familia/data_type/types/sorted_set.rb +113 -10
  20. data/lib/familia/data_type/types/stringkey.rb +0 -4
  21. data/lib/familia/data_type.rb +6 -193
  22. data/lib/familia/features/encrypted_fields.rb +5 -2
  23. data/lib/familia/features/external_identifier.rb +49 -8
  24. data/lib/familia/features/object_identifier.rb +84 -12
  25. data/lib/familia/features/relationships/indexing/unique_index_generators.rb +6 -1
  26. data/lib/familia/features/relationships/indexing.rb +7 -1
  27. data/lib/familia/features/relationships/participation/participant_methods.rb +6 -2
  28. data/lib/familia/features/transient_fields.rb +7 -2
  29. data/lib/familia/features.rb +6 -1
  30. data/lib/familia/field_type.rb +0 -18
  31. data/lib/familia/horreum/{core/connection.rb → connection.rb} +21 -0
  32. data/lib/familia/horreum/{subclass/definition.rb → definition.rb} +109 -32
  33. data/lib/familia/horreum/{subclass/management.rb → management.rb} +1 -3
  34. data/lib/familia/horreum/{core/serialization.rb → persistence.rb} +72 -169
  35. data/lib/familia/horreum/{subclass/related_fields_management.rb → related_fields.rb} +22 -2
  36. data/lib/familia/horreum/serialization.rb +172 -0
  37. data/lib/familia/horreum.rb +29 -8
  38. data/lib/familia/version.rb +1 -1
  39. data/try/configuration/scenarios_try.rb +1 -1
  40. data/try/core/connection_try.rb +4 -4
  41. data/try/core/database_consistency_try.rb +1 -0
  42. data/try/core/errors_try.rb +3 -3
  43. data/try/core/familia_try.rb +1 -1
  44. data/try/core/isolated_dbclient_try.rb +2 -2
  45. data/try/core/tools_try.rb +2 -2
  46. data/try/data_types/sorted_set_zadd_options_try.rb +625 -0
  47. data/try/features/field_groups_try.rb +244 -0
  48. data/try/features/relationships/indexing_try.rb +10 -0
  49. data/try/features/transient_fields/refresh_reset_try.rb +2 -0
  50. data/try/helpers/test_helpers.rb +3 -4
  51. data/try/horreum/auto_indexing_on_save_try.rb +212 -0
  52. data/try/horreum/commands_try.rb +2 -0
  53. data/try/horreum/defensive_initialization_try.rb +86 -0
  54. data/try/horreum/destroy_related_fields_cleanup_try.rb +2 -0
  55. data/try/horreum/settings_try.rb +2 -0
  56. data/try/memory/memory_docker_ruby_dump.sh +1 -1
  57. data/try/models/customer_try.rb +5 -5
  58. data/try/valkey.conf +26 -0
  59. metadata +19 -11
  60. data/lib/familia/horreum/core.rb +0 -21
  61. /data/lib/familia/horreum/{core/database_commands.rb → database_commands.rb} +0 -0
  62. /data/lib/familia/horreum/{shared/settings.rb → settings.rb} +0 -0
  63. /data/lib/familia/horreum/{core/utils.rb → utils.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.pre16
4
+ version: 2.0.0.pre17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delano Mandelbaum
@@ -138,7 +138,7 @@ files:
138
138
  - ".github/workflows/claude-code-review.yml"
139
139
  - ".github/workflows/claude.yml"
140
140
  - ".github/workflows/code-quality.yml"
141
- - ".github/workflows/code-smellage.yml"
141
+ - ".github/workflows/code-smells.yml"
142
142
  - ".github/workflows/docs.yml"
143
143
  - ".gitignore"
144
144
  - ".pre-commit-config.yaml"
@@ -209,8 +209,11 @@ files:
209
209
  - lib/familia/connection/pipeline_core.rb
210
210
  - lib/familia/connection/transaction_core.rb
211
211
  - lib/familia/data_type.rb
212
+ - lib/familia/data_type/class_methods.rb
212
213
  - lib/familia/data_type/commands.rb
214
+ - lib/familia/data_type/connection.rb
213
215
  - lib/familia/data_type/serialization.rb
216
+ - lib/familia/data_type/settings.rb
214
217
  - lib/familia/data_type/types/counter.rb
215
218
  - lib/familia/data_type/types/hashkey.rb
216
219
  - lib/familia/data_type/types/listkey.rb
@@ -258,15 +261,15 @@ files:
258
261
  - lib/familia/features/transient_fields/transient_field_type.rb
259
262
  - lib/familia/field_type.rb
260
263
  - lib/familia/horreum.rb
261
- - lib/familia/horreum/core.rb
262
- - lib/familia/horreum/core/connection.rb
263
- - lib/familia/horreum/core/database_commands.rb
264
- - lib/familia/horreum/core/serialization.rb
265
- - lib/familia/horreum/core/utils.rb
266
- - lib/familia/horreum/shared/settings.rb
267
- - lib/familia/horreum/subclass/definition.rb
268
- - lib/familia/horreum/subclass/management.rb
269
- - lib/familia/horreum/subclass/related_fields_management.rb
264
+ - lib/familia/horreum/connection.rb
265
+ - lib/familia/horreum/database_commands.rb
266
+ - lib/familia/horreum/definition.rb
267
+ - lib/familia/horreum/management.rb
268
+ - lib/familia/horreum/persistence.rb
269
+ - lib/familia/horreum/related_fields.rb
270
+ - lib/familia/horreum/serialization.rb
271
+ - lib/familia/horreum/settings.rb
272
+ - lib/familia/horreum/utils.rb
270
273
  - lib/familia/json_serializer.rb
271
274
  - lib/familia/logging.rb
272
275
  - lib/familia/refinements.rb
@@ -320,6 +323,7 @@ files:
320
323
  - try/data_types/list_try.rb
321
324
  - try/data_types/lock_try.rb
322
325
  - try/data_types/sorted_set_try.rb
326
+ - try/data_types/sorted_set_zadd_options_try.rb
323
327
  - try/data_types/string_try.rb
324
328
  - try/data_types/unsortedset_try.rb
325
329
  - try/debugging/README.md
@@ -383,6 +387,7 @@ files:
383
387
  - try/features/external_identifier/external_identifier_try.rb
384
388
  - try/features/feature_dependencies_try.rb
385
389
  - try/features/feature_improvements_try.rb
390
+ - try/features/field_groups_try.rb
386
391
  - try/features/object_identifier/object_identifier_integration_try.rb
387
392
  - try/features/object_identifier/object_identifier_try.rb
388
393
  - try/features/quantization/quantization_try.rb
@@ -410,9 +415,11 @@ files:
410
415
  - try/features/transient_fields/transient_fields_integration_try.rb
411
416
  - try/helpers/test_cleanup.rb
412
417
  - try/helpers/test_helpers.rb
418
+ - try/horreum/auto_indexing_on_save_try.rb
413
419
  - try/horreum/base_try.rb
414
420
  - try/horreum/class_methods_try.rb
415
421
  - try/horreum/commands_try.rb
422
+ - try/horreum/defensive_initialization_try.rb
416
423
  - try/horreum/destroy_related_fields_cleanup_try.rb
417
424
  - try/horreum/enhanced_conflict_handling_try.rb
418
425
  - try/horreum/field_categories_try.rb
@@ -453,6 +460,7 @@ files:
453
460
  - try/refinements/logger_trace_methods_try.rb
454
461
  - try/refinements/time_literals_numeric_methods_try.rb
455
462
  - try/refinements/time_literals_string_methods_try.rb
463
+ - try/valkey.conf
456
464
  homepage: https://github.com/delano/familia
457
465
  licenses:
458
466
  - MIT
@@ -1,21 +0,0 @@
1
- # lib/familia/horreum/core.rb
2
-
3
- require_relative 'core/database_commands'
4
- require_relative 'core/serialization'
5
- require_relative 'core/connection'
6
- require_relative 'core/utils'
7
-
8
- module Familia
9
- class Horreum
10
- module Core
11
- include Familia::Horreum::DatabaseCommands
12
- include Familia::Horreum::Serialization
13
- # include for instance methods after it's loaded. Note that Horreum::Utils
14
- # are also included and at one time also has a uri method. This connection
15
- # module is also extended for the class level methods. It will require some
16
- # disambiguation at some point.
17
- include Familia::Horreum::Connection
18
- include Familia::Horreum::Utils
19
- end
20
- end
21
- end
File without changes