aws-record 2.6.0 → 2.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/aws-record/record.rb +5 -2
- data/lib/aws-record/record/attribute.rb +1 -3
- data/lib/aws-record/record/buildable_search.rb +16 -15
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 613ebc2bb79fb30645f69fc831911f4fb269e9fe1e0d69bb064e5cc0b6c3294c
|
4
|
+
data.tar.gz: 6012bd27fd72dd5b8702e9833d302c57df7d9c44834ac37a6f347735328898ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e524df13f1433045d958466a377672f28a9c5cb7765f1d365ba856ff51ad8b78d7ab60bf55bd4b36d36ed4d880f7452ee5f09aff9cf0f7ec67f1096dbb3ccc2a
|
7
|
+
data.tar.gz: 34bb9db197f9f6b825b1b4296aace9df35f1e72f9e814bc530b25e36117500ab52b2710730ebf3dd712381fb7d85415f36a52a61c1c32420922492d3ebf21729
|
data/lib/aws-record/record.rb
CHANGED
@@ -50,7 +50,6 @@ module Aws
|
|
50
50
|
# # Attribute definitions go here...
|
51
51
|
# end
|
52
52
|
def self.included(sub_class)
|
53
|
-
@track_mutations = true
|
54
53
|
sub_class.send(:extend, RecordClassMethods)
|
55
54
|
sub_class.send(:include, Attributes)
|
56
55
|
sub_class.send(:include, ItemOperations)
|
@@ -201,7 +200,11 @@ module Aws
|
|
201
200
|
# @return [Boolean] true if mutation tracking is enabled at the model
|
202
201
|
# level, false otherwise.
|
203
202
|
def mutation_tracking_enabled?
|
204
|
-
@track_mutations
|
203
|
+
if defined?(@track_mutations)
|
204
|
+
@track_mutations
|
205
|
+
else
|
206
|
+
@track_mutations = true
|
207
|
+
end
|
205
208
|
end
|
206
209
|
|
207
210
|
def model_valid?
|
@@ -53,9 +53,7 @@ module Aws
|
|
53
53
|
@marshaler = options[:marshaler] || DefaultMarshaler
|
54
54
|
@persist_nil = options[:persist_nil]
|
55
55
|
dv = options[:default_value]
|
56
|
-
|
57
|
-
@default_value_or_lambda = _is_lambda?(dv) ? dv : type_cast(dv)
|
58
|
-
end
|
56
|
+
@default_value_or_lambda = _is_lambda?(dv) ? dv : type_cast(dv)
|
59
57
|
end
|
60
58
|
|
61
59
|
# Attempts to type cast a raw value into the attribute's type. This call
|
@@ -101,9 +101,9 @@ module Aws
|
|
101
101
|
@params[:expression_attribute_values] = {}
|
102
102
|
values = @params[:expression_attribute_values]
|
103
103
|
end
|
104
|
-
_key_pass(statement_str, names)
|
105
|
-
_apply_values(
|
106
|
-
@params[:key_condition_expression] =
|
104
|
+
prepared = _key_pass(statement_str, names)
|
105
|
+
statement = _apply_values(prepared, subs, values)
|
106
|
+
@params[:key_condition_expression] = statement
|
107
107
|
self
|
108
108
|
end
|
109
109
|
|
@@ -123,7 +123,7 @@ module Aws
|
|
123
123
|
# "contains(:body, ?)",
|
124
124
|
# "bacon"
|
125
125
|
# ).complete!
|
126
|
-
#
|
126
|
+
#
|
127
127
|
def filter_expr(statement_str, *subs)
|
128
128
|
names = @params[:expression_attribute_names]
|
129
129
|
if names.nil?
|
@@ -135,9 +135,9 @@ module Aws
|
|
135
135
|
@params[:expression_attribute_values] = {}
|
136
136
|
values = @params[:expression_attribute_values]
|
137
137
|
end
|
138
|
-
_key_pass(statement_str, names)
|
139
|
-
_apply_values(
|
140
|
-
@params[:filter_expression] =
|
138
|
+
prepared = _key_pass(statement_str, names)
|
139
|
+
statement = _apply_values(prepared, subs, values)
|
140
|
+
@params[:filter_expression] = statement
|
141
141
|
self
|
142
142
|
end
|
143
143
|
|
@@ -167,8 +167,8 @@ module Aws
|
|
167
167
|
@params[:expression_attribute_names] = {}
|
168
168
|
names = @params[:expression_attribute_names]
|
169
169
|
end
|
170
|
-
_key_pass(statement_str, names)
|
171
|
-
@params[:projection_expression] =
|
170
|
+
prepared = _key_pass(statement_str, names)
|
171
|
+
@params[:projection_expression] = prepared
|
172
172
|
self
|
173
173
|
end
|
174
174
|
|
@@ -232,8 +232,8 @@ module Aws
|
|
232
232
|
|
233
233
|
private
|
234
234
|
def _key_pass(statement, names)
|
235
|
-
statement.gsub
|
236
|
-
key = match.gsub
|
235
|
+
statement.gsub(/:(\w+)/) do |match|
|
236
|
+
key = match.gsub(':','').to_sym
|
237
237
|
key_name = @model.attributes.storage_name_for(key)
|
238
238
|
if key_name
|
239
239
|
sub_name = _next_name
|
@@ -248,15 +248,16 @@ module Aws
|
|
248
248
|
|
249
249
|
def _apply_values(statement, subs, values)
|
250
250
|
count = 0
|
251
|
-
statement.gsub
|
251
|
+
statement.gsub(/[?]/) do |match|
|
252
252
|
sub_value = _next_value
|
253
253
|
raise "Substitution collision!" if values[sub_value]
|
254
254
|
values[sub_value] = subs[count]
|
255
255
|
count += 1
|
256
256
|
sub_value
|
257
|
-
end
|
258
|
-
|
259
|
-
|
257
|
+
end.tap do
|
258
|
+
unless count == subs.size
|
259
|
+
raise "Expected #{count} values in the substitution set, but found #{subs.size}"
|
260
|
+
end
|
260
261
|
end
|
261
262
|
end
|
262
263
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Amazon Web Services
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-dynamodb
|
@@ -81,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
requirements: []
|
84
|
-
rubygems_version: 3.2.
|
84
|
+
rubygems_version: 3.2.7
|
85
85
|
signing_key:
|
86
86
|
specification_version: 4
|
87
87
|
summary: AWS Record library for Amazon DynamoDB
|