Class: Dynamoid::Transactions::Mutation::Inc
- Inherits:
-
Base
- Object
- Base
- Dynamoid::Transactions::Mutation::Inc
show all
- Defined in:
- lib/dynamoid/transactions/mutation/inc.rb
Instance Method Summary
collapse
Methods inherited from Base
validate_attribute_names!
Constructor Details
#initialize(model_class, hash_key, range_key, counters) ⇒ Inc
Returns a new instance of Inc.
11
12
13
14
15
16
17
18
19
|
# File 'lib/dynamoid/transactions/mutation/inc.rb', line 11
def initialize(model_class, hash_key, range_key, counters)
super()
@model_class = model_class
@hash_key = hash_key
@range_key = range_key
@counters = counters || {}
@touch = @counters.delete(:touch)
end
|
Instance Method Details
#aborted? ⇒ Boolean
30
31
32
|
# File 'lib/dynamoid/transactions/mutation/inc.rb', line 30
def aborted?
false
end
|
#action_requests ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/dynamoid/transactions/mutation/inc.rb', line 42
def action_requests
builder = Builders::UpdateRequestBuilder.new(@model_class)
builder.hash_key = cast_and_dump(@model_class.hash_key, @hash_key)
builder.range_key = cast_and_dump(@model_class.range_key, @range_key) if @model_class.range_key?
builder.add_expression_attribute_name('#_h', @model_class.hash_key)
condition_expression = 'attribute_exists(#_h)'
if @model_class.range_key?
builder.add_expression_attribute_name('#_r', @model_class.range_key)
condition_expression += ' AND attribute_exists(#_r)'
end
builder.condition_expression = condition_expression
@counters.each do |name, value|
builder.add_value(name, cast_and_dump(name, value))
end
if @touch
timestamp = DateTime.now.in_time_zone(Time.zone)
timestamp_attributes_to_touch.each do |name|
builder.set_attributes(name => dump(name, timestamp))
end
end
[builder.request]
end
|
#observable_by_user_result ⇒ Object
38
39
40
|
# File 'lib/dynamoid/transactions/mutation/inc.rb', line 38
def observable_by_user_result
nil
end
|
#on_commit ⇒ Object
26
|
# File 'lib/dynamoid/transactions/mutation/inc.rb', line 26
def on_commit; end
|
#on_registration ⇒ Object
21
22
23
24
|
# File 'lib/dynamoid/transactions/mutation/inc.rb', line 21
def on_registration
validate_primary_key!
validate_attribute_names!(@model_class, @counters.keys)
end
|
#on_rollback ⇒ Object
28
|
# File 'lib/dynamoid/transactions/mutation/inc.rb', line 28
def on_rollback; end
|
#skipped? ⇒ Boolean
34
35
36
|
# File 'lib/dynamoid/transactions/mutation/inc.rb', line 34
def skipped?
@counters.empty?
end
|