aws-dynamodb-query 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.idea/workspace.xml +89 -14
- data/lib/aws/dynamodb/query.rb +23 -4
- data/lib/aws/dynamodb/query/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 320df6a9f652c179cb56e64d3d6c2c1f84d138e6
|
4
|
+
data.tar.gz: b885187f99eb69ccaa2a0b0381244a0619454736
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da44079865a681524a64301974128c3526c58fbe8170e83452697c14e8cea42145c954d5d30753b5c5f213eda53e0adc578fcb760c400b863ffbc93c4da2c80f
|
7
|
+
data.tar.gz: 1988c2b3bf5b13637a350c18243b96b435317f91787fd73784118aaa878637b16ebf7199f073f6d85a6b5655cdfc81a33a2261ee792b6cb68c887efd93772be9
|
data/.idea/workspace.xml
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<project version="4">
|
3
|
+
<component name="AnalysisUIOptions">
|
4
|
+
<option name="SCOPE_TYPE" value="3" />
|
5
|
+
</component>
|
3
6
|
<component name="ChangeListManager">
|
4
7
|
<list default="true" id="70ffc16e-1950-4181-b8c2-8ff3ff5a72ac" name="Default" comment="Removed log statement">
|
5
8
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/aws-dynamodb-query.iml" />
|
@@ -34,8 +37,8 @@
|
|
34
37
|
<file leaf-file-name="query.rb" pinned="false" current-in-tab="false">
|
35
38
|
<entry file="file://$PROJECT_DIR$/lib/aws/dynamodb/query.rb">
|
36
39
|
<provider selected="true" editor-type-id="text-editor">
|
37
|
-
<state relative-caret-position="
|
38
|
-
<caret line="
|
40
|
+
<state relative-caret-position="394">
|
41
|
+
<caret line="92" column="44" lean-forward="true" selection-start-line="92" selection-start-column="44" selection-end-line="92" selection-end-column="44" />
|
39
42
|
<folding />
|
40
43
|
</state>
|
41
44
|
</provider>
|
@@ -133,6 +136,9 @@
|
|
133
136
|
<find>add_development_dependency</find>
|
134
137
|
<find>yaj</find>
|
135
138
|
<find>Yajl</find>
|
139
|
+
<find>unset_attributes</find>
|
140
|
+
<find>stored_attributes</find>
|
141
|
+
<find>Agent</find>
|
136
142
|
</findStrings>
|
137
143
|
</component>
|
138
144
|
<component name="Git.Settings">
|
@@ -145,8 +151,8 @@
|
|
145
151
|
<option value="$PROJECT_DIR$/test/aws/dynamodb/query_test.rb" />
|
146
152
|
<option value="$PROJECT_DIR$/README.md" />
|
147
153
|
<option value="$PROJECT_DIR$/aws-dynamodb-query.gemspec" />
|
148
|
-
<option value="$PROJECT_DIR$/lib/aws/dynamodb/query.rb" />
|
149
154
|
<option value="$PROJECT_DIR$/Gemfile" />
|
155
|
+
<option value="$PROJECT_DIR$/lib/aws/dynamodb/query.rb" />
|
150
156
|
<option value="$PROJECT_DIR$/lib/aws/dynamodb/query/version.rb" />
|
151
157
|
</list>
|
152
158
|
</option>
|
@@ -163,6 +169,73 @@
|
|
163
169
|
<option name="width" value="1550" />
|
164
170
|
<option name="height" value="1344" />
|
165
171
|
</component>
|
172
|
+
<component name="ProjectInspectionProfilesVisibleTreeState">
|
173
|
+
<entry key="Project Default">
|
174
|
+
<profile-state>
|
175
|
+
<expanded-state>
|
176
|
+
<State>
|
177
|
+
<id />
|
178
|
+
</State>
|
179
|
+
<State>
|
180
|
+
<id>CSS</id>
|
181
|
+
</State>
|
182
|
+
<State>
|
183
|
+
<id>Code quality toolsCSS</id>
|
184
|
+
</State>
|
185
|
+
<State>
|
186
|
+
<id>Code quality toolsJavaScript</id>
|
187
|
+
</State>
|
188
|
+
<State>
|
189
|
+
<id>Cucumber</id>
|
190
|
+
</State>
|
191
|
+
<State>
|
192
|
+
<id>DOM issuesJavaScript</id>
|
193
|
+
</State>
|
194
|
+
<State>
|
195
|
+
<id>Gems</id>
|
196
|
+
</State>
|
197
|
+
<State>
|
198
|
+
<id>General</id>
|
199
|
+
</State>
|
200
|
+
<State>
|
201
|
+
<id>GeneralJavaScript</id>
|
202
|
+
</State>
|
203
|
+
<State>
|
204
|
+
<id>Invalid elementsCSS</id>
|
205
|
+
</State>
|
206
|
+
<State>
|
207
|
+
<id>JavaScript</id>
|
208
|
+
</State>
|
209
|
+
<State>
|
210
|
+
<id>Naming conventionsRuby</id>
|
211
|
+
</State>
|
212
|
+
<State>
|
213
|
+
<id>Potentially confusing code constructsJavaScript</id>
|
214
|
+
</State>
|
215
|
+
<State>
|
216
|
+
<id>Probable bugsJavaScript</id>
|
217
|
+
</State>
|
218
|
+
<State>
|
219
|
+
<id>Rails</id>
|
220
|
+
</State>
|
221
|
+
<State>
|
222
|
+
<id>RubocopRuby</id>
|
223
|
+
</State>
|
224
|
+
<State>
|
225
|
+
<id>Ruby</id>
|
226
|
+
</State>
|
227
|
+
<State>
|
228
|
+
<id>TypeScript</id>
|
229
|
+
</State>
|
230
|
+
</expanded-state>
|
231
|
+
<selected-state>
|
232
|
+
<State>
|
233
|
+
<id>RubocopRuby</id>
|
234
|
+
</State>
|
235
|
+
</selected-state>
|
236
|
+
</profile-state>
|
237
|
+
</entry>
|
238
|
+
</component>
|
166
239
|
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
167
240
|
<component name="ProjectView">
|
168
241
|
<navigator proportions="" version="1">
|
@@ -182,8 +255,9 @@
|
|
182
255
|
</component>
|
183
256
|
<component name="PropertiesComponent">
|
184
257
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
185
|
-
<property name="settings.editor.selected.configurable" value="
|
258
|
+
<property name="settings.editor.selected.configurable" value="Errors" />
|
186
259
|
<property name="HbShouldOpenHtmlAsHb" value="" />
|
260
|
+
<property name="run.code.analysis.last.selected.profile" value="pProject Default" />
|
187
261
|
</component>
|
188
262
|
<component name="RecentsManager">
|
189
263
|
<key name="CopyFile.RECENT_KEYS">
|
@@ -224,7 +298,7 @@
|
|
224
298
|
<workItem from="1509616590154" duration="38000" />
|
225
299
|
<workItem from="1509621829777" duration="713000" />
|
226
300
|
<workItem from="1509625297566" duration="1234000" />
|
227
|
-
<workItem from="1509627738661" duration="
|
301
|
+
<workItem from="1509627738661" duration="1665000" />
|
228
302
|
</task>
|
229
303
|
<task id="LOCAL-00001" summary="First working release 0.1.1">
|
230
304
|
<created>1509537033535</created>
|
@@ -251,7 +325,7 @@
|
|
251
325
|
<servers />
|
252
326
|
</component>
|
253
327
|
<component name="TimeTrackingManager">
|
254
|
-
<option name="totallyTimeSpent" value="
|
328
|
+
<option name="totallyTimeSpent" value="19981000" />
|
255
329
|
</component>
|
256
330
|
<component name="ToolWindowManager">
|
257
331
|
<frame x="289" y="23" width="1550" height="1344" extended-state="0" />
|
@@ -260,21 +334,22 @@
|
|
260
334
|
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.18358113" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
261
335
|
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
262
336
|
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3599374" sideWeight="0.5159151" order="7" side_tool="true" content_ui="tabs" />
|
337
|
+
<window_info id="Inspection Results" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32942098" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
263
338
|
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
264
339
|
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
265
340
|
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3599374" sideWeight="0.48408487" order="7" side_tool="false" content_ui="tabs" />
|
341
|
+
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25931233" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
266
342
|
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
267
343
|
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
268
344
|
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
345
|
+
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
269
346
|
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
270
347
|
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
271
348
|
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
272
349
|
<window_info id="Documentation" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="FLOATING" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" x="100" y="100" width="1476" height="1240" />
|
273
350
|
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
274
|
-
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25931233" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
275
351
|
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
276
352
|
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
277
|
-
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
278
353
|
</layout>
|
279
354
|
</component>
|
280
355
|
<component name="TypeScriptGeneratedFilesManager">
|
@@ -686,18 +761,18 @@
|
|
686
761
|
</state>
|
687
762
|
</provider>
|
688
763
|
</entry>
|
689
|
-
<entry file="file://$PROJECT_DIR$/
|
764
|
+
<entry file="file://$PROJECT_DIR$/Gemfile">
|
690
765
|
<provider selected="true" editor-type-id="text-editor">
|
691
|
-
<state relative-caret-position="
|
692
|
-
<caret line="
|
766
|
+
<state relative-caret-position="45">
|
767
|
+
<caret line="3" column="7" lean-forward="true" selection-start-line="3" selection-start-column="7" selection-end-line="3" selection-end-column="7" />
|
693
768
|
<folding />
|
694
769
|
</state>
|
695
770
|
</provider>
|
696
771
|
</entry>
|
697
|
-
<entry file="file://$PROJECT_DIR$/
|
772
|
+
<entry file="file://$PROJECT_DIR$/lib/aws/dynamodb/query.rb">
|
698
773
|
<provider selected="true" editor-type-id="text-editor">
|
699
|
-
<state relative-caret-position="
|
700
|
-
<caret line="
|
774
|
+
<state relative-caret-position="394">
|
775
|
+
<caret line="92" column="44" lean-forward="true" selection-start-line="92" selection-start-column="44" selection-end-line="92" selection-end-column="44" />
|
701
776
|
<folding />
|
702
777
|
</state>
|
703
778
|
</provider>
|
data/lib/aws/dynamodb/query.rb
CHANGED
@@ -12,6 +12,8 @@ module Aws
|
|
12
12
|
# @see http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html
|
13
13
|
#
|
14
14
|
# @param [String] table_name The name of the table containing the requested items.
|
15
|
+
# @param [Class] model_class model record class used to find stored attributes
|
16
|
+
# @param [Boolean] nullify_model_attributes false by default, when true assigns null to model attributes that are not returned with DB resultset
|
15
17
|
# @param [String] index_name The name of an index to query
|
16
18
|
# @param [String] select The attributes to be returned in the result: ALL_ATTRIBUTES, ALL_PROJECTED_ATTRIBUTES, COUNT, SPECIFIC_ATTRIBUTES
|
17
19
|
# @param [String] key_condition_expression The condition that specifies the key value(s) for items to be retrieved by the Query action
|
@@ -27,7 +29,22 @@ module Aws
|
|
27
29
|
# @param [String] aws_dynamodb_endpoint AWS dynamodb endpoint is obtained by default from ENV['aws_dynamodb_endpoint'], use this parameter to override with your own
|
28
30
|
#
|
29
31
|
# @return [Array] array of Ruby Hash objects where each object contains all the values returned from dynamodb in dasherized format
|
30
|
-
def self.call(table_name,
|
32
|
+
def self.call(table_name,
|
33
|
+
model_class: nil,
|
34
|
+
nullify_model_attributes: false,
|
35
|
+
index_name: nil,
|
36
|
+
select: nil,
|
37
|
+
key_condition_expression: nil,
|
38
|
+
expression_attribute_names: nil,
|
39
|
+
expression_attribute_values: nil,
|
40
|
+
scan_index_forward: true,
|
41
|
+
return_consumed_capacity: nil,
|
42
|
+
pagination: false,
|
43
|
+
last_evaluated_key: nil,
|
44
|
+
aws_region: ENV['AWS_REGION'],
|
45
|
+
aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'],
|
46
|
+
aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
|
47
|
+
aws_dynamodb_endpoint: ENV['aws_dynamodb_endpoint'])
|
31
48
|
result = []
|
32
49
|
# DyanmoDB Query results are divided into "pages" of data that are 1 MB in size (or less).
|
33
50
|
# Agents data exceeds 1MB so we need multiple pages.
|
@@ -93,9 +110,11 @@ module Aws
|
|
93
110
|
end
|
94
111
|
|
95
112
|
# nullify remaining model attributes to be included in returned result
|
96
|
-
|
97
|
-
|
98
|
-
|
113
|
+
if nullify_model_attributes and model_class.respond_to? :attribute_keys
|
114
|
+
unset_attributes = model_class.attribute_keys - stored_attributes
|
115
|
+
unset_attributes.each do |attr|
|
116
|
+
record[attr.to_s.dasherize] = nil
|
117
|
+
end
|
99
118
|
end
|
100
119
|
|
101
120
|
result << record
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-dynamodb-query
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- khaled83
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|