dynamoid 3.10.0 → 3.11.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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +182 -2
  4. data/dynamoid.gemspec +4 -4
  5. data/lib/dynamoid/adapter.rb +1 -1
  6. data/lib/dynamoid/adapter_plugin/aws_sdk_v3/filter_expression_convertor.rb +53 -18
  7. data/lib/dynamoid/adapter_plugin/aws_sdk_v3/item_updater.rb +5 -4
  8. data/lib/dynamoid/adapter_plugin/aws_sdk_v3/projection_expression_convertor.rb +9 -7
  9. data/lib/dynamoid/adapter_plugin/aws_sdk_v3/query.rb +1 -1
  10. data/lib/dynamoid/adapter_plugin/aws_sdk_v3/scan.rb +1 -1
  11. data/lib/dynamoid/adapter_plugin/aws_sdk_v3/transact.rb +31 -0
  12. data/lib/dynamoid/adapter_plugin/aws_sdk_v3.rb +9 -5
  13. data/lib/dynamoid/components.rb +1 -0
  14. data/lib/dynamoid/config.rb +2 -0
  15. data/lib/dynamoid/criteria/chain.rb +63 -18
  16. data/lib/dynamoid/criteria/where_conditions.rb +13 -6
  17. data/lib/dynamoid/dirty.rb +86 -11
  18. data/lib/dynamoid/dumping.rb +36 -14
  19. data/lib/dynamoid/errors.rb +14 -2
  20. data/lib/dynamoid/finders.rb +6 -6
  21. data/lib/dynamoid/loadable.rb +1 -0
  22. data/lib/dynamoid/persistence/inc.rb +6 -7
  23. data/lib/dynamoid/persistence/item_updater_with_casting_and_dumping.rb +36 -0
  24. data/lib/dynamoid/persistence/item_updater_with_dumping.rb +33 -0
  25. data/lib/dynamoid/persistence/save.rb +5 -2
  26. data/lib/dynamoid/persistence/update_fields.rb +5 -3
  27. data/lib/dynamoid/persistence/upsert.rb +5 -4
  28. data/lib/dynamoid/persistence.rb +38 -17
  29. data/lib/dynamoid/transaction_write/base.rb +47 -0
  30. data/lib/dynamoid/transaction_write/create.rb +49 -0
  31. data/lib/dynamoid/transaction_write/delete_with_instance.rb +60 -0
  32. data/lib/dynamoid/transaction_write/delete_with_primary_key.rb +59 -0
  33. data/lib/dynamoid/transaction_write/destroy.rb +79 -0
  34. data/lib/dynamoid/transaction_write/save.rb +164 -0
  35. data/lib/dynamoid/transaction_write/update_attributes.rb +46 -0
  36. data/lib/dynamoid/transaction_write/update_fields.rb +102 -0
  37. data/lib/dynamoid/transaction_write/upsert.rb +96 -0
  38. data/lib/dynamoid/transaction_write.rb +464 -0
  39. data/lib/dynamoid/type_casting.rb +3 -1
  40. data/lib/dynamoid/undumping.rb +13 -2
  41. data/lib/dynamoid/validations.rb +1 -1
  42. data/lib/dynamoid/version.rb +1 -1
  43. data/lib/dynamoid.rb +7 -0
  44. metadata +18 -5
@@ -24,7 +24,7 @@ module Dynamoid
24
24
  # @since 0.2.0
25
25
  def valid?(context = nil)
26
26
  context ||= (new_record? ? :create : :update)
27
- super(context)
27
+ super
28
28
  end
29
29
 
30
30
  # Raise an error unless this object is valid.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dynamoid
4
- VERSION = '3.10.0'
4
+ VERSION = '3.11.0'
5
5
  end
data/lib/dynamoid.rb CHANGED
@@ -35,6 +35,7 @@ require 'dynamoid/loadable'
35
35
  require 'dynamoid/components'
36
36
  require 'dynamoid/document'
37
37
  require 'dynamoid/adapter'
38
+ require 'dynamoid/transaction_write'
38
39
 
39
40
  require 'dynamoid/tasks/database'
40
41
 
@@ -62,4 +63,10 @@ module Dynamoid
62
63
  def adapter
63
64
  @adapter ||= Adapter.new
64
65
  end
66
+
67
+ # @private
68
+ def deprecator
69
+ # all the deprecated behavior will be removed in the next major version
70
+ @deprecator ||= ActiveSupport::Deprecation.new('4.0', 'Dynamoid')
71
+ end
65
72
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.10.0
4
+ version: 3.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Symonds
@@ -21,7 +21,7 @@ authors:
21
21
  autorequire:
22
22
  bindir: bin
23
23
  cert_chain: []
24
- date: 2024-02-10 00:00:00.000000000 Z
24
+ date: 2025-01-12 00:00:00.000000000 Z
25
25
  dependencies:
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: activemodel
@@ -194,6 +194,7 @@ files:
194
194
  - lib/dynamoid/adapter_plugin/aws_sdk_v3/query.rb
195
195
  - lib/dynamoid/adapter_plugin/aws_sdk_v3/scan.rb
196
196
  - lib/dynamoid/adapter_plugin/aws_sdk_v3/table.rb
197
+ - lib/dynamoid/adapter_plugin/aws_sdk_v3/transact.rb
197
198
  - lib/dynamoid/adapter_plugin/aws_sdk_v3/until_past_table_status.rb
198
199
  - lib/dynamoid/application_time_zone.rb
199
200
  - lib/dynamoid/associations.rb
@@ -230,6 +231,8 @@ files:
230
231
  - lib/dynamoid/persistence.rb
231
232
  - lib/dynamoid/persistence/import.rb
232
233
  - lib/dynamoid/persistence/inc.rb
234
+ - lib/dynamoid/persistence/item_updater_with_casting_and_dumping.rb
235
+ - lib/dynamoid/persistence/item_updater_with_dumping.rb
233
236
  - lib/dynamoid/persistence/save.rb
234
237
  - lib/dynamoid/persistence/update_fields.rb
235
238
  - lib/dynamoid/persistence/update_validations.rb
@@ -239,6 +242,16 @@ files:
239
242
  - lib/dynamoid/tasks.rb
240
243
  - lib/dynamoid/tasks/database.rake
241
244
  - lib/dynamoid/tasks/database.rb
245
+ - lib/dynamoid/transaction_write.rb
246
+ - lib/dynamoid/transaction_write/base.rb
247
+ - lib/dynamoid/transaction_write/create.rb
248
+ - lib/dynamoid/transaction_write/delete_with_instance.rb
249
+ - lib/dynamoid/transaction_write/delete_with_primary_key.rb
250
+ - lib/dynamoid/transaction_write/destroy.rb
251
+ - lib/dynamoid/transaction_write/save.rb
252
+ - lib/dynamoid/transaction_write/update_attributes.rb
253
+ - lib/dynamoid/transaction_write/update_fields.rb
254
+ - lib/dynamoid/transaction_write/upsert.rb
242
255
  - lib/dynamoid/type_casting.rb
243
256
  - lib/dynamoid/undumping.rb
244
257
  - lib/dynamoid/validations.rb
@@ -248,10 +261,10 @@ licenses:
248
261
  - MIT
249
262
  metadata:
250
263
  homepage_uri: http://github.com/Dynamoid/dynamoid
251
- source_code_uri: https://github.com/Dynamoid/dynamoid/tree/v3.10.0
252
- changelog_uri: https://github.com/Dynamoid/dynamoid/blob/v3.10.0/CHANGELOG.md
264
+ source_code_uri: https://github.com/Dynamoid/dynamoid/tree/v3.11.0
265
+ changelog_uri: https://github.com/Dynamoid/dynamoid/blob/v3.11.0/CHANGELOG.md
253
266
  bug_tracker_uri: https://github.com/Dynamoid/dynamoid/issues
254
- documentation_uri: https://www.rubydoc.info/gems/dynamoid/3.10.0
267
+ documentation_uri: https://www.rubydoc.info/gems/dynamoid/3.11.0
255
268
  funding_uri: https://opencollective.com/dynamoid
256
269
  wiki_uri: https://github.com/Dynamoid/dynamoid/wiki
257
270
  rubygems_mfa_required: 'true'