lutaml-store 0.1.1

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 (110) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/main.yml +27 -0
  3. data/.gitignore +12 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +10 -0
  6. data/.rubocop_todo.yml +450 -0
  7. data/CLAUDE.md +57 -0
  8. data/CODE_OF_CONDUCT.md +132 -0
  9. data/CORRECTED_HTTP_CACHE_IMPLEMENTATION.md +209 -0
  10. data/CORRECTED_HTTP_CACHE_PLAN.md +164 -0
  11. data/Gemfile +15 -0
  12. data/Gemfile.lock +220 -0
  13. data/README.adoc +1430 -0
  14. data/Rakefile +12 -0
  15. data/TODO.impl/0-lutaml-store-self-quality.md +112 -0
  16. data/TODO.impl/1-lutaml-hal-migration.md +60 -0
  17. data/TODO.impl/2-glossarist-migration.md +359 -0
  18. data/TODO.impl/3-lutaml-jsonschema-migration.md +273 -0
  19. data/bin/console +11 -0
  20. data/bin/setup +8 -0
  21. data/demo/Gemfile +15 -0
  22. data/demo/Gemfile.lock +61 -0
  23. data/demo/README.adoc +301 -0
  24. data/demo/data/vcards/co/contact_10_thompson.data +1 -0
  25. data/demo/data/vcards/co/contact_10_thompson.meta +1 -0
  26. data/demo/data/vcards/co/contact_1_doe.data +1 -0
  27. data/demo/data/vcards/co/contact_1_doe.meta +1 -0
  28. data/demo/data/vcards/co/contact_2_smith.data +1 -0
  29. data/demo/data/vcards/co/contact_2_smith.meta +1 -0
  30. data/demo/data/vcards/co/contact_3_johnson.data +1 -0
  31. data/demo/data/vcards/co/contact_3_johnson.meta +1 -0
  32. data/demo/data/vcards/co/contact_4_garcia.data +1 -0
  33. data/demo/data/vcards/co/contact_4_garcia.meta +1 -0
  34. data/demo/data/vcards/co/contact_5_wilson.data +1 -0
  35. data/demo/data/vcards/co/contact_5_wilson.meta +1 -0
  36. data/demo/data/vcards/co/contact_6_brown.data +1 -0
  37. data/demo/data/vcards/co/contact_6_brown.meta +1 -0
  38. data/demo/data/vcards/co/contact_7_davis.data +1 -0
  39. data/demo/data/vcards/co/contact_7_davis.meta +1 -0
  40. data/demo/data/vcards/co/contact_8_anderson.data +1 -0
  41. data/demo/data/vcards/co/contact_8_anderson.meta +1 -0
  42. data/demo/data/vcards/co/contact_9_taylor.data +1 -0
  43. data/demo/data/vcards/co/contact_9_taylor.meta +1 -0
  44. data/demo/data/vcards.db +0 -0
  45. data/demo/pottery_class_demo.rb +164 -0
  46. data/demo/vcard_models.rb +140 -0
  47. data/demo/vcard_store_demo.rb +526 -0
  48. data/lib/lutaml/store/adapter/base.rb +65 -0
  49. data/lib/lutaml/store/adapter/filesystem.rb +288 -0
  50. data/lib/lutaml/store/adapter/memory.rb +225 -0
  51. data/lib/lutaml/store/adapter/sqlite.rb +193 -0
  52. data/lib/lutaml/store/adapter.rb +12 -0
  53. data/lib/lutaml/store/attribute_updater.rb +198 -0
  54. data/lib/lutaml/store/basic_store.rb +190 -0
  55. data/lib/lutaml/store/cache.rb +108 -0
  56. data/lib/lutaml/store/cache_store.rb +282 -0
  57. data/lib/lutaml/store/composite_model_handler.rb +169 -0
  58. data/lib/lutaml/store/compression.rb +137 -0
  59. data/lib/lutaml/store/config.rb +178 -0
  60. data/lib/lutaml/store/database_store.rb +425 -0
  61. data/lib/lutaml/store/events.rb +92 -0
  62. data/lib/lutaml/store/format/base.rb +33 -0
  63. data/lib/lutaml/store/format/json.rb +25 -0
  64. data/lib/lutaml/store/format/jsonl.rb +37 -0
  65. data/lib/lutaml/store/format/marshal_format.rb +37 -0
  66. data/lib/lutaml/store/format/yaml.rb +29 -0
  67. data/lib/lutaml/store/format/yamls.rb +35 -0
  68. data/lib/lutaml/store/format.rb +33 -0
  69. data/lib/lutaml/store/http_cache.rb +279 -0
  70. data/lib/lutaml/store/http_cache_config.rb +53 -0
  71. data/lib/lutaml/store/http_cache_entry.rb +69 -0
  72. data/lib/lutaml/store/http_header_processor.rb +175 -0
  73. data/lib/lutaml/store/integrity.rb +102 -0
  74. data/lib/lutaml/store/model_registration.rb +75 -0
  75. data/lib/lutaml/store/model_registry.rb +123 -0
  76. data/lib/lutaml/store/model_serializer.rb +69 -0
  77. data/lib/lutaml/store/monitor.rb +192 -0
  78. data/lib/lutaml/store/storage_key.rb +40 -0
  79. data/lib/lutaml/store/version.rb +7 -0
  80. data/lib/lutaml/store.rb +41 -0
  81. data/lutaml-store.gemspec +35 -0
  82. data/plan.adoc +606 -0
  83. data/sig/lutaml/store.rbs +6 -0
  84. data/spec/lutaml/store/adapter_interface_spec.rb +89 -0
  85. data/spec/lutaml/store/anti_pattern_guard_spec.rb +35 -0
  86. data/spec/lutaml/store/anti_pattern_spec.rb +78 -0
  87. data/spec/lutaml/store/autoload_spec.rb +34 -0
  88. data/spec/lutaml/store/cache_store_spec.rb +271 -0
  89. data/spec/lutaml/store/compression_spec.rb +78 -0
  90. data/spec/lutaml/store/config_enhanced_spec.rb +158 -0
  91. data/spec/lutaml/store/corrected_http_cache_integration_spec.rb +336 -0
  92. data/spec/lutaml/store/custom_serializer_spec.rb +108 -0
  93. data/spec/lutaml/store/database_store_spec.rb +279 -0
  94. data/spec/lutaml/store/file_io_spec.rb +219 -0
  95. data/spec/lutaml/store/format_round_trip_spec.rb +110 -0
  96. data/spec/lutaml/store/format_spec.rb +70 -0
  97. data/spec/lutaml/store/http_cache_entry_spec.rb +203 -0
  98. data/spec/lutaml/store/http_cache_hal_integration_spec.rb +404 -0
  99. data/spec/lutaml/store/http_cache_spec.rb +422 -0
  100. data/spec/lutaml/store/http_header_processor_spec.rb +290 -0
  101. data/spec/lutaml/store/import_spec.rb +90 -0
  102. data/spec/lutaml/store/integrity_spec.rb +157 -0
  103. data/spec/lutaml/store/key_collision_serializer_spec.rb +98 -0
  104. data/spec/lutaml/store/load_save_spec.rb +107 -0
  105. data/spec/lutaml/store/lutaml_model_integration_spec.rb +291 -0
  106. data/spec/lutaml/store/model_serializer_spec.rb +140 -0
  107. data/spec/lutaml/store/store_spec.rb +182 -0
  108. data/spec/lutaml/store_spec.rb +21 -0
  109. data/spec/spec_helper.rb +16 -0
  110. metadata +166 -0
metadata ADDED
@@ -0,0 +1,166 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lutaml-store
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Ronald Tse
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: lutaml-model
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: 0.8.15
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: 0.8.15
26
+ description: |
27
+ Provides a unified store interface for Lutaml::Model objects with model registry,
28
+ polymorphic support, composite relationships, and multiple storage backends
29
+ (memory, filesystem, SQLite).
30
+ email:
31
+ - ronald.tse@ribose.com
32
+ executables: []
33
+ extensions: []
34
+ extra_rdoc_files: []
35
+ files:
36
+ - ".github/workflows/main.yml"
37
+ - ".gitignore"
38
+ - ".rspec"
39
+ - ".rubocop.yml"
40
+ - ".rubocop_todo.yml"
41
+ - CLAUDE.md
42
+ - CODE_OF_CONDUCT.md
43
+ - CORRECTED_HTTP_CACHE_IMPLEMENTATION.md
44
+ - CORRECTED_HTTP_CACHE_PLAN.md
45
+ - Gemfile
46
+ - Gemfile.lock
47
+ - README.adoc
48
+ - Rakefile
49
+ - TODO.impl/0-lutaml-store-self-quality.md
50
+ - TODO.impl/1-lutaml-hal-migration.md
51
+ - TODO.impl/2-glossarist-migration.md
52
+ - TODO.impl/3-lutaml-jsonschema-migration.md
53
+ - bin/console
54
+ - bin/setup
55
+ - demo/Gemfile
56
+ - demo/Gemfile.lock
57
+ - demo/README.adoc
58
+ - demo/data/vcards.db
59
+ - demo/data/vcards/co/contact_10_thompson.data
60
+ - demo/data/vcards/co/contact_10_thompson.meta
61
+ - demo/data/vcards/co/contact_1_doe.data
62
+ - demo/data/vcards/co/contact_1_doe.meta
63
+ - demo/data/vcards/co/contact_2_smith.data
64
+ - demo/data/vcards/co/contact_2_smith.meta
65
+ - demo/data/vcards/co/contact_3_johnson.data
66
+ - demo/data/vcards/co/contact_3_johnson.meta
67
+ - demo/data/vcards/co/contact_4_garcia.data
68
+ - demo/data/vcards/co/contact_4_garcia.meta
69
+ - demo/data/vcards/co/contact_5_wilson.data
70
+ - demo/data/vcards/co/contact_5_wilson.meta
71
+ - demo/data/vcards/co/contact_6_brown.data
72
+ - demo/data/vcards/co/contact_6_brown.meta
73
+ - demo/data/vcards/co/contact_7_davis.data
74
+ - demo/data/vcards/co/contact_7_davis.meta
75
+ - demo/data/vcards/co/contact_8_anderson.data
76
+ - demo/data/vcards/co/contact_8_anderson.meta
77
+ - demo/data/vcards/co/contact_9_taylor.data
78
+ - demo/data/vcards/co/contact_9_taylor.meta
79
+ - demo/pottery_class_demo.rb
80
+ - demo/vcard_models.rb
81
+ - demo/vcard_store_demo.rb
82
+ - lib/lutaml/store.rb
83
+ - lib/lutaml/store/adapter.rb
84
+ - lib/lutaml/store/adapter/base.rb
85
+ - lib/lutaml/store/adapter/filesystem.rb
86
+ - lib/lutaml/store/adapter/memory.rb
87
+ - lib/lutaml/store/adapter/sqlite.rb
88
+ - lib/lutaml/store/attribute_updater.rb
89
+ - lib/lutaml/store/basic_store.rb
90
+ - lib/lutaml/store/cache.rb
91
+ - lib/lutaml/store/cache_store.rb
92
+ - lib/lutaml/store/composite_model_handler.rb
93
+ - lib/lutaml/store/compression.rb
94
+ - lib/lutaml/store/config.rb
95
+ - lib/lutaml/store/database_store.rb
96
+ - lib/lutaml/store/events.rb
97
+ - lib/lutaml/store/format.rb
98
+ - lib/lutaml/store/format/base.rb
99
+ - lib/lutaml/store/format/json.rb
100
+ - lib/lutaml/store/format/jsonl.rb
101
+ - lib/lutaml/store/format/marshal_format.rb
102
+ - lib/lutaml/store/format/yaml.rb
103
+ - lib/lutaml/store/format/yamls.rb
104
+ - lib/lutaml/store/http_cache.rb
105
+ - lib/lutaml/store/http_cache_config.rb
106
+ - lib/lutaml/store/http_cache_entry.rb
107
+ - lib/lutaml/store/http_header_processor.rb
108
+ - lib/lutaml/store/integrity.rb
109
+ - lib/lutaml/store/model_registration.rb
110
+ - lib/lutaml/store/model_registry.rb
111
+ - lib/lutaml/store/model_serializer.rb
112
+ - lib/lutaml/store/monitor.rb
113
+ - lib/lutaml/store/storage_key.rb
114
+ - lib/lutaml/store/version.rb
115
+ - lutaml-store.gemspec
116
+ - plan.adoc
117
+ - sig/lutaml/store.rbs
118
+ - spec/lutaml/store/adapter_interface_spec.rb
119
+ - spec/lutaml/store/anti_pattern_guard_spec.rb
120
+ - spec/lutaml/store/anti_pattern_spec.rb
121
+ - spec/lutaml/store/autoload_spec.rb
122
+ - spec/lutaml/store/cache_store_spec.rb
123
+ - spec/lutaml/store/compression_spec.rb
124
+ - spec/lutaml/store/config_enhanced_spec.rb
125
+ - spec/lutaml/store/corrected_http_cache_integration_spec.rb
126
+ - spec/lutaml/store/custom_serializer_spec.rb
127
+ - spec/lutaml/store/database_store_spec.rb
128
+ - spec/lutaml/store/file_io_spec.rb
129
+ - spec/lutaml/store/format_round_trip_spec.rb
130
+ - spec/lutaml/store/format_spec.rb
131
+ - spec/lutaml/store/http_cache_entry_spec.rb
132
+ - spec/lutaml/store/http_cache_hal_integration_spec.rb
133
+ - spec/lutaml/store/http_cache_spec.rb
134
+ - spec/lutaml/store/http_header_processor_spec.rb
135
+ - spec/lutaml/store/import_spec.rb
136
+ - spec/lutaml/store/integrity_spec.rb
137
+ - spec/lutaml/store/key_collision_serializer_spec.rb
138
+ - spec/lutaml/store/load_save_spec.rb
139
+ - spec/lutaml/store/lutaml_model_integration_spec.rb
140
+ - spec/lutaml/store/model_serializer_spec.rb
141
+ - spec/lutaml/store/store_spec.rb
142
+ - spec/lutaml/store_spec.rb
143
+ - spec/spec_helper.rb
144
+ homepage: https://github.com/lutaml/lutaml-store
145
+ licenses:
146
+ - BSD-2-Clause
147
+ metadata:
148
+ rubygems_mfa_required: 'true'
149
+ rdoc_options: []
150
+ require_paths:
151
+ - lib
152
+ required_ruby_version: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: 3.0.0
157
+ required_rubygems_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ requirements: []
163
+ rubygems_version: 3.6.9
164
+ specification_version: 4
165
+ summary: Store-centric database-style API for Lutaml::Model with multi-backend persistence.
166
+ test_files: []