aws-record 2.6.0 → 2.6.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.
- 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
|