Class: Dynamoid::Persistence::Inc
- Inherits:
-
Object
- Object
- Dynamoid::Persistence::Inc
- Defined in:
- lib/dynamoid/persistence/inc.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#call ⇒ Object
rubocop:enable Style/OptionalArguments.
-
#initialize(model_class, partition_key, sort_key = nil, counters) ⇒ Inc
constructor
rubocop:disable Style/OptionalArguments.
Constructor Details
#initialize(model_class, partition_key, sort_key = nil, counters) ⇒ Inc
rubocop:disable Style/OptionalArguments
14 15 16 17 18 19 |
# File 'lib/dynamoid/persistence/inc.rb', line 14 def initialize(model_class, partition_key, sort_key = nil, counters) @model_class = model_class @partition_key = partition_key @sort_key = sort_key @counters = counters end |
Class Method Details
.call(model_class, partition_key, sort_key = nil, counters) ⇒ Object
9 10 11 |
# File 'lib/dynamoid/persistence/inc.rb', line 9 def self.call(model_class, partition_key, sort_key = nil, counters) new(model_class, partition_key, sort_key, counters).call end |
Instance Method Details
#call ⇒ Object
rubocop:enable Style/OptionalArguments
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/dynamoid/persistence/inc.rb', line 22 def call touch = @counters.delete(:touch) partition_key_dumped = cast_and_dump(@model_class.hash_key, @partition_key) = (partition_key_dumped) Dynamoid.adapter.update_item(@model_class.table_name, partition_key_dumped, ) do |t| item_updater = ItemUpdaterWithCastingAndDumping.new(@model_class, t) @counters.each do |name, value| item_updater.add(name => value) end if touch value = DateTime.now.in_time_zone(Time.zone) (touch).each do |name| item_updater.set(name => value) end end end rescue Dynamoid::Errors::ConditionalCheckFailedException # rubocop:disable Lint/SuppressedException end |