dynamoid_advanced_where 1.3.0 → 1.5.0
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/.github/workflows/lint.yml +21 -0
- data/.github/workflows/test.yml +39 -0
- data/.rubocop-https---raw-githubusercontent-com-GetTerminus-ruby-shared-configs-master--rubocop-3-1-yml +5 -0
- data/.rubocop-https---raw-githubusercontent-com-GetTerminus-ruby-shared-configs-master--rubocop-yml +91 -0
- data/.rubocop.yml +6 -0
- data/.rubocop_todo.yml +42 -0
- data/.ruby-version +1 -1
- data/Appraisals +5 -4
- data/Gemfile +4 -3
- data/Gemfile.lock +70 -58
- data/README.md +27 -0
- data/Rakefile +5 -3
- data/dynamoid_advanced_where.gemspec +5 -2
- data/gemfiles/dynamoid_3.4.gemfile +6 -4
- data/gemfiles/dynamoid_3.5.gemfile +6 -4
- data/gemfiles/dynamoid_3.6.gemfile +6 -4
- data/gemfiles/dynamoid_latest.gemfile +6 -4
- data/gemfiles/dynamoid_master.gemfile +6 -4
- data/lib/dynamoid_advanced_where/batched_updater.rb +33 -20
- data/lib/dynamoid_advanced_where/filter_builder.rb +7 -7
- data/lib/dynamoid_advanced_where/integrations/model.rb +1 -1
- data/lib/dynamoid_advanced_where/nodes/and_node.rb +0 -1
- data/lib/dynamoid_advanced_where/nodes/array_literal_node.rb +34 -0
- data/lib/dynamoid_advanced_where/nodes/base_node.rb +2 -1
- data/lib/dynamoid_advanced_where/nodes/exists_node.rb +2 -1
- data/lib/dynamoid_advanced_where/nodes/field_node.rb +16 -25
- data/lib/dynamoid_advanced_where/nodes/greater_than_node.rb +2 -0
- data/lib/dynamoid_advanced_where/nodes/in_node.rb +30 -0
- data/lib/dynamoid_advanced_where/nodes/includes.rb +2 -0
- data/lib/dynamoid_advanced_where/nodes/literal_node.rb +1 -0
- data/lib/dynamoid_advanced_where/nodes/not.rb +0 -1
- data/lib/dynamoid_advanced_where/nodes/or_node.rb +2 -0
- data/lib/dynamoid_advanced_where/nodes/root_node.rb +1 -1
- data/lib/dynamoid_advanced_where/nodes.rb +3 -0
- data/lib/dynamoid_advanced_where/query_builder.rb +3 -1
- data/lib/dynamoid_advanced_where/query_materializer.rb +2 -2
- data/lib/dynamoid_advanced_where/version.rb +3 -1
- data/lib/dynamoid_advanced_where.rb +5 -3
- metadata +30 -10
- data/.circleci/config.yml +0 -129
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b7427e4321a6c8c50704320ff3912868bd50d3471dae090a26059c107f25210
|
4
|
+
data.tar.gz: e87fbb9ac716caefdc16bf3190b2cbd0075263dae6aff9e88154271717055691
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33c0c156eef5278bc77f7679bf56762f23937e2dc949da35a4dd16b8c4d0e3fa4e4f20d864faaac9b0e4ec99a9befe56994d87287c96452570582b93921e649f
|
7
|
+
data.tar.gz: 1b0eab5b78254e4352d72d2930daf2aa1645b27e2759e87024387dd6efeaa9ed9bc70536e3fc0fd1c0fe0cdafcf4c2b22f8548672d0d3496ebb1c64687efe0ec
|
@@ -0,0 +1,21 @@
|
|
1
|
+
name: 'Lint'
|
2
|
+
|
3
|
+
on: push
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
run-rubocop:
|
7
|
+
name: Lint code
|
8
|
+
strategy:
|
9
|
+
fail-fast: false
|
10
|
+
matrix:
|
11
|
+
rubyVersion: ["2.7.6"]
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v3
|
15
|
+
- uses: ruby/setup-ruby@v1
|
16
|
+
with:
|
17
|
+
ruby-version: ${{ matrix.rubyVersion }}
|
18
|
+
bundler-cache: true
|
19
|
+
cache-version: "${{ matrix.rubyVersion }}-0"
|
20
|
+
- name: Run RuboCop
|
21
|
+
run: bundle exec rubocop
|
@@ -0,0 +1,39 @@
|
|
1
|
+
name: Test
|
2
|
+
|
3
|
+
on: push
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
run-tests:
|
7
|
+
name: Test code
|
8
|
+
runs-on: ubuntu-latest
|
9
|
+
strategy:
|
10
|
+
fail-fast: false
|
11
|
+
matrix:
|
12
|
+
ruby:
|
13
|
+
- 3.0.4
|
14
|
+
- 2.7.6
|
15
|
+
- 3.1.2
|
16
|
+
services:
|
17
|
+
dynamodb:
|
18
|
+
image: amazon/dynamodb-local
|
19
|
+
ports:
|
20
|
+
- 8000/tcp
|
21
|
+
steps:
|
22
|
+
- uses: actions/checkout@v3
|
23
|
+
- uses: ruby/setup-ruby@v1
|
24
|
+
with:
|
25
|
+
ruby-version: ${{ matrix.ruby }}
|
26
|
+
bundler-cache: true
|
27
|
+
cache-version: ${{ matrix.ruby }}-0
|
28
|
+
- name: Run RSpec
|
29
|
+
env:
|
30
|
+
AWS_ACCESS_KEY_ID: asdf
|
31
|
+
AWS_SECRET_ACCESS_KEY: asdf
|
32
|
+
CI: true
|
33
|
+
DYNAMODB_HOST: http://localhost:${{job.services.dynamodb.ports[8000]}}/
|
34
|
+
run: bundle exec rspec
|
35
|
+
- name: Coveralls
|
36
|
+
uses: coverallsapp/github-action@v1.1.2
|
37
|
+
continue-on-error: true
|
38
|
+
with:
|
39
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
data/.rubocop-https---raw-githubusercontent-com-GetTerminus-ruby-shared-configs-master--rubocop-yml
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- Makefile
|
4
|
+
- vendor/**/*
|
5
|
+
- bin/**/*
|
6
|
+
|
7
|
+
Layout/EndOfLine:
|
8
|
+
Enabled: false
|
9
|
+
|
10
|
+
Style/DateTime:
|
11
|
+
Enabled: false
|
12
|
+
|
13
|
+
Style/Documentation:
|
14
|
+
Enabled: false
|
15
|
+
|
16
|
+
Lint/Debugger:
|
17
|
+
Enabled: true
|
18
|
+
|
19
|
+
Style/FrozenStringLiteralComment:
|
20
|
+
Enabled: true
|
21
|
+
EnforcedStyle: always
|
22
|
+
|
23
|
+
Style/TrailingCommaInHashLiteral:
|
24
|
+
Enabled: true
|
25
|
+
EnforcedStyleForMultiline: comma
|
26
|
+
|
27
|
+
Style/TrailingCommaInArrayLiteral:
|
28
|
+
Enabled: true
|
29
|
+
EnforcedStyleForMultiline: comma
|
30
|
+
|
31
|
+
Style/TrailingCommaInArguments:
|
32
|
+
Enabled: true
|
33
|
+
EnforcedStyleForMultiline: comma
|
34
|
+
|
35
|
+
Lint/UnusedMethodArgument:
|
36
|
+
AllowUnusedKeywordArguments: true
|
37
|
+
|
38
|
+
Layout/LineLength:
|
39
|
+
Enabled: true
|
40
|
+
Max: 280
|
41
|
+
IgnoreCopDirectives: true
|
42
|
+
AllowedPatterns: ['\A#', '\A\s*sig { .* }\Z']
|
43
|
+
Exclude:
|
44
|
+
- '**/*_pb.rb'
|
45
|
+
|
46
|
+
Metrics/AbcSize:
|
47
|
+
Enabled: true
|
48
|
+
Max: 48
|
49
|
+
|
50
|
+
Metrics/CyclomaticComplexity:
|
51
|
+
Max: 9
|
52
|
+
|
53
|
+
Metrics/MethodLength:
|
54
|
+
Enabled: true
|
55
|
+
Max: 32
|
56
|
+
|
57
|
+
Layout/ParameterAlignment:
|
58
|
+
Enabled: true
|
59
|
+
EnforcedStyle: with_fixed_indentation
|
60
|
+
|
61
|
+
Naming/MethodParameterName:
|
62
|
+
Enabled: true
|
63
|
+
AllowedNames: ['io', 'id', 'to', 'by', 'on', 'in', 'at', '_'] # Defaults + _
|
64
|
+
|
65
|
+
Layout/MultilineMethodCallIndentation:
|
66
|
+
Enabled: true
|
67
|
+
EnforcedStyle: indented
|
68
|
+
|
69
|
+
Style/ParallelAssignment:
|
70
|
+
Enabled: true
|
71
|
+
|
72
|
+
Metrics/ClassLength:
|
73
|
+
Max: 240
|
74
|
+
|
75
|
+
Metrics/BlockLength:
|
76
|
+
Max: 30
|
77
|
+
Exclude:
|
78
|
+
- spec/**/*.rb
|
79
|
+
- '**/*_pb.rb'
|
80
|
+
|
81
|
+
Metrics/ParameterLists:
|
82
|
+
Max: 6
|
83
|
+
|
84
|
+
Lint/AmbiguousBlockAssociation:
|
85
|
+
Exclude:
|
86
|
+
- spec/**/*.rb
|
87
|
+
|
88
|
+
Style/BlockDelimiters:
|
89
|
+
Enabled: true
|
90
|
+
Exclude:
|
91
|
+
- spec/**/*
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config`
|
3
|
+
# on 2022-10-31 20:09:20 UTC using RuboCop version 1.18.4.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Offense count: 1
|
10
|
+
# Configuration parameters: Include.
|
11
|
+
# Include: **/*.gemspec
|
12
|
+
Gemspec/RequiredRubyVersion:
|
13
|
+
Exclude:
|
14
|
+
- 'dynamoid_advanced_where.gemspec'
|
15
|
+
|
16
|
+
# Offense count: 6
|
17
|
+
Lint/MissingSuper:
|
18
|
+
Exclude:
|
19
|
+
- 'lib/dynamoid_advanced_where/nodes/and_node.rb'
|
20
|
+
- 'lib/dynamoid_advanced_where/nodes/exists_node.rb'
|
21
|
+
- 'lib/dynamoid_advanced_where/nodes/field_node.rb'
|
22
|
+
- 'lib/dynamoid_advanced_where/nodes/operation_node.rb'
|
23
|
+
- 'lib/dynamoid_advanced_where/nodes/or_node.rb'
|
24
|
+
- 'lib/dynamoid_advanced_where/nodes/root_node.rb'
|
25
|
+
|
26
|
+
# Offense count: 1
|
27
|
+
# Configuration parameters: AllowComments, AllowNil.
|
28
|
+
Lint/SuppressedException:
|
29
|
+
Exclude:
|
30
|
+
- 'lib/dynamoid_advanced_where/batched_updater.rb'
|
31
|
+
|
32
|
+
# Offense count: 1
|
33
|
+
Naming/AccessorMethodName:
|
34
|
+
Exclude:
|
35
|
+
- 'lib/dynamoid_advanced_where/batched_updater.rb'
|
36
|
+
|
37
|
+
# Offense count: 1
|
38
|
+
# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
|
39
|
+
# AllowedNames: at, by, db, id, in, io, ip, of, on, os, pp, to
|
40
|
+
Naming/MethodParameterName:
|
41
|
+
Exclude:
|
42
|
+
- 'lib/dynamoid_advanced_where/nodes/root_node.rb'
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
3.0.4
|
data/Appraisals
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
|
2
|
-
appraise
|
3
|
-
gem
|
3
|
+
appraise 'dynamoid-3.4' do
|
4
|
+
gem 'dynamoid', '~> 3.4.0'
|
4
5
|
end
|
5
6
|
|
6
|
-
appraise
|
7
|
-
gem
|
7
|
+
appraise 'dynamoid-latest' do
|
8
|
+
gem 'dynamoid', '~> 3.0'
|
8
9
|
end
|
data/Gemfile
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
source 'https://rubygems.org'
|
4
|
+
|
5
|
+
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
4
6
|
|
5
7
|
# Specify your gem's dependencies in dynamoid-advanced-where.gemspec
|
6
8
|
gemspec
|
7
9
|
|
8
10
|
gem 'pry'
|
9
|
-
|
data/Gemfile.lock
CHANGED
@@ -1,104 +1,115 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
dynamoid_advanced_where (1.
|
4
|
+
dynamoid_advanced_where (1.5.0)
|
5
5
|
dynamoid (>= 3.2, < 4)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
activemodel (
|
11
|
-
activesupport (=
|
12
|
-
activesupport (
|
10
|
+
activemodel (7.0.4)
|
11
|
+
activesupport (= 7.0.4)
|
12
|
+
activesupport (7.0.4)
|
13
13
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
14
14
|
i18n (>= 1.6, < 2)
|
15
15
|
minitest (>= 5.1)
|
16
16
|
tzinfo (~> 2.0)
|
17
|
-
|
18
|
-
|
17
|
+
addressable (2.8.1)
|
18
|
+
public_suffix (>= 2.0.2, < 6.0)
|
19
|
+
appraisal (2.4.1)
|
19
20
|
bundler
|
20
21
|
rake
|
21
22
|
thor (>= 0.14.0)
|
22
23
|
ast (2.4.2)
|
23
|
-
aws-eventstream (1.
|
24
|
-
aws-partitions (1.
|
25
|
-
aws-sdk-core (3.
|
24
|
+
aws-eventstream (1.2.0)
|
25
|
+
aws-partitions (1.654.0)
|
26
|
+
aws-sdk-core (3.166.0)
|
26
27
|
aws-eventstream (~> 1, >= 1.0.2)
|
27
|
-
aws-partitions (~> 1, >= 1.
|
28
|
+
aws-partitions (~> 1, >= 1.651.0)
|
29
|
+
aws-sigv4 (~> 1.5)
|
30
|
+
jmespath (~> 1, >= 1.6.1)
|
31
|
+
aws-sdk-dynamodb (1.78.0)
|
32
|
+
aws-sdk-core (~> 3, >= 3.165.0)
|
28
33
|
aws-sigv4 (~> 1.1)
|
29
|
-
|
30
|
-
aws-sdk-dynamodb (1.59.0)
|
31
|
-
aws-sdk-core (~> 3, >= 3.112.0)
|
32
|
-
aws-sigv4 (~> 1.1)
|
33
|
-
aws-sigv4 (1.2.2)
|
34
|
+
aws-sigv4 (1.5.2)
|
34
35
|
aws-eventstream (~> 1, >= 1.0.2)
|
35
|
-
bundler-audit (0.
|
36
|
+
bundler-audit (0.9.1)
|
36
37
|
bundler (>= 1.2.0, < 3)
|
37
|
-
thor (
|
38
|
-
childprocess (4.
|
38
|
+
thor (~> 1.0)
|
39
|
+
childprocess (4.1.0)
|
39
40
|
coderay (1.1.3)
|
40
41
|
colorize (0.8.1)
|
41
|
-
concurrent-ruby (1.1.
|
42
|
-
|
43
|
-
|
42
|
+
concurrent-ruby (1.1.10)
|
43
|
+
crack (0.4.5)
|
44
|
+
rexml
|
45
|
+
diff-lcs (1.5.0)
|
46
|
+
dynamoid (3.7.1)
|
44
47
|
activemodel (>= 4)
|
45
48
|
aws-sdk-dynamodb (~> 1.0)
|
46
49
|
concurrent-ruby (>= 1.0)
|
47
|
-
fasterer (0.
|
50
|
+
fasterer (0.10.0)
|
48
51
|
colorize (~> 0.7)
|
49
|
-
ruby_parser (>= 3.
|
50
|
-
|
52
|
+
ruby_parser (>= 3.19.1)
|
53
|
+
hashdiff (1.0.1)
|
54
|
+
i18n (1.12.0)
|
51
55
|
concurrent-ruby (~> 1.0)
|
52
56
|
iniparse (1.5.0)
|
53
|
-
jmespath (1.
|
57
|
+
jmespath (1.6.1)
|
58
|
+
json (2.6.2)
|
54
59
|
method_source (1.0.0)
|
55
|
-
minitest (5.
|
56
|
-
overcommit (0.
|
60
|
+
minitest (5.16.3)
|
61
|
+
overcommit (0.59.1)
|
57
62
|
childprocess (>= 0.6.3, < 5)
|
58
63
|
iniparse (~> 1.4)
|
59
|
-
|
60
|
-
|
64
|
+
rexml (~> 3.2)
|
65
|
+
parallel (1.22.1)
|
66
|
+
parser (3.1.2.1)
|
61
67
|
ast (~> 2.4.1)
|
62
|
-
pry (0.14.
|
68
|
+
pry (0.14.1)
|
63
69
|
coderay (~> 1.1)
|
64
70
|
method_source (~> 1.0)
|
65
|
-
|
71
|
+
public_suffix (5.0.0)
|
72
|
+
rainbow (3.1.1)
|
66
73
|
rake (10.5.0)
|
67
|
-
regexp_parser (2.
|
68
|
-
rexml (3.2.
|
69
|
-
rspec (3.
|
70
|
-
rspec-core (~> 3.
|
71
|
-
rspec-expectations (~> 3.
|
72
|
-
rspec-mocks (~> 3.
|
73
|
-
rspec-core (3.
|
74
|
-
rspec-support (~> 3.
|
75
|
-
rspec-expectations (3.
|
74
|
+
regexp_parser (2.6.0)
|
75
|
+
rexml (3.2.5)
|
76
|
+
rspec (3.12.0)
|
77
|
+
rspec-core (~> 3.12.0)
|
78
|
+
rspec-expectations (~> 3.12.0)
|
79
|
+
rspec-mocks (~> 3.12.0)
|
80
|
+
rspec-core (3.12.0)
|
81
|
+
rspec-support (~> 3.12.0)
|
82
|
+
rspec-expectations (3.12.0)
|
76
83
|
diff-lcs (>= 1.2.0, < 2.0)
|
77
|
-
rspec-support (~> 3.
|
78
|
-
rspec-mocks (3.
|
84
|
+
rspec-support (~> 3.12.0)
|
85
|
+
rspec-mocks (3.12.0)
|
79
86
|
diff-lcs (>= 1.2.0, < 2.0)
|
80
|
-
rspec-support (~> 3.
|
81
|
-
rspec-support (3.
|
82
|
-
rubocop (1.
|
87
|
+
rspec-support (~> 3.12.0)
|
88
|
+
rspec-support (3.12.0)
|
89
|
+
rubocop (1.37.1)
|
90
|
+
json (~> 2.3)
|
83
91
|
parallel (~> 1.10)
|
84
|
-
parser (>= 3.
|
92
|
+
parser (>= 3.1.2.1)
|
85
93
|
rainbow (>= 2.2.2, < 4.0)
|
86
94
|
regexp_parser (>= 1.8, < 3.0)
|
87
|
-
rexml
|
88
|
-
rubocop-ast (>= 1.
|
95
|
+
rexml (>= 3.2.5, < 4.0)
|
96
|
+
rubocop-ast (>= 1.23.0, < 2.0)
|
89
97
|
ruby-progressbar (~> 1.7)
|
90
98
|
unicode-display_width (>= 1.4.0, < 3.0)
|
91
|
-
rubocop-ast (1.
|
92
|
-
parser (>=
|
99
|
+
rubocop-ast (1.23.0)
|
100
|
+
parser (>= 3.1.1.0)
|
93
101
|
ruby-progressbar (1.11.0)
|
94
|
-
ruby_parser (3.
|
95
|
-
sexp_processor (~> 4.
|
96
|
-
sexp_processor (4.
|
97
|
-
thor (1.1
|
98
|
-
tzinfo (2.0.
|
102
|
+
ruby_parser (3.19.1)
|
103
|
+
sexp_processor (~> 4.16)
|
104
|
+
sexp_processor (4.16.1)
|
105
|
+
thor (1.2.1)
|
106
|
+
tzinfo (2.0.5)
|
99
107
|
concurrent-ruby (~> 1.0)
|
100
|
-
unicode-display_width (2.
|
101
|
-
|
108
|
+
unicode-display_width (2.3.0)
|
109
|
+
webmock (3.18.1)
|
110
|
+
addressable (>= 2.8.0)
|
111
|
+
crack (>= 0.3.2)
|
112
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
102
113
|
|
103
114
|
PLATFORMS
|
104
115
|
ruby
|
@@ -116,6 +127,7 @@ DEPENDENCIES
|
|
116
127
|
rake (~> 10.0)
|
117
128
|
rspec (~> 3.0)
|
118
129
|
rubocop
|
130
|
+
webmock
|
119
131
|
|
120
132
|
BUNDLED WITH
|
121
|
-
2.
|
133
|
+
2.3.12
|
data/README.md
CHANGED
@@ -114,6 +114,16 @@ Valid on field types: `string`, or `set/array` of `String` / `Integer`
|
|
114
114
|
#### Example
|
115
115
|
`where{|r| r.foo.includes?(123) }` and `where{|r| r.foo.includes?('foo') }`
|
116
116
|
|
117
|
+
### In?
|
118
|
+
This operator may be used to check if:
|
119
|
+
|
120
|
+
* A string field is one of an enumerable set of values
|
121
|
+
|
122
|
+
Valid on field types: `string`
|
123
|
+
|
124
|
+
#### Example
|
125
|
+
`where{|r| r.foo.in?(['foo', 'bar']) }`
|
126
|
+
|
117
127
|
### Working with Map and Raw types
|
118
128
|
When it comes to map and raw attribute types, DAW takes the approach of
|
119
129
|
trusting you, since the exact format is not explicitly defined or enforced.
|
@@ -249,6 +259,23 @@ if it successfully updates. If it fails to update, it will return nil.
|
|
249
259
|
If the specified hash key, or hash/range key combination is not already present
|
250
260
|
it will be inserted with the desired mutations (if possible).
|
251
261
|
|
262
|
+
### Referencing a field
|
263
|
+
To identify the field to be updated, either through set, increment, decrement, or append you may just use the field name
|
264
|
+
for top level keys. When you use the top level single symbol key DAW will use the built in Dynamoid dumper.
|
265
|
+
|
266
|
+
If you need to reference the sub-key of a map, or custom serialized object you may pass an array of keys. Since DAW
|
267
|
+
looses context to the "type" it is up to you to ensure you are writing out the correct values. The only exception to
|
268
|
+
this is if you are set the field to a class which implements `dynamoid_dump`.
|
269
|
+
|
270
|
+
#### Example
|
271
|
+
```ruby
|
272
|
+
Model.where{ conditions }.batch_update
|
273
|
+
.set_values([:map_or_custom_type, :sub_field, :foo] => 'value', [:map_or_custom_type2, :foo] => MyDumpableClass.new(test))
|
274
|
+
.increment([:some_map, :attempts], by: 1)
|
275
|
+
.decrement([:some_map, :attempts_remaining], by: 1)
|
276
|
+
.apply(hash_key, range_key)
|
277
|
+
```
|
278
|
+
|
252
279
|
### Setting a single field
|
253
280
|
The batch updated method `set_values(attr_name: new_attr_value, other_atter: val)`
|
254
281
|
|
data/Rakefile
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
lib = File.expand_path('lib', __dir__)
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
5
|
require 'dynamoid_advanced_where/version'
|
@@ -30,12 +32,13 @@ Gem::Specification.new do |spec|
|
|
30
32
|
|
31
33
|
spec.add_dependency 'dynamoid', '>= 3.2', '< 4'
|
32
34
|
|
33
|
-
spec.add_development_dependency '
|
35
|
+
spec.add_development_dependency 'appraisal'
|
34
36
|
spec.add_development_dependency 'bundler', '>= 1.16'
|
37
|
+
spec.add_development_dependency 'bundler-audit'
|
35
38
|
spec.add_development_dependency 'fasterer'
|
36
39
|
spec.add_development_dependency 'overcommit'
|
37
40
|
spec.add_development_dependency 'rake', '~> 10.0'
|
38
41
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
39
42
|
spec.add_development_dependency 'rubocop'
|
40
|
-
spec.add_development_dependency '
|
43
|
+
spec.add_development_dependency 'webmock'
|
41
44
|
end
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file was generated by Appraisal
|
2
4
|
|
3
|
-
source
|
5
|
+
source 'https://rubygems.org'
|
4
6
|
|
5
|
-
gem
|
6
|
-
gem
|
7
|
+
gem 'dynamoid', '~> 3.4.0'
|
8
|
+
gem 'pry'
|
7
9
|
|
8
|
-
gemspec path:
|
10
|
+
gemspec path: '../'
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file was generated by Appraisal
|
2
4
|
|
3
|
-
source
|
5
|
+
source 'https://rubygems.org'
|
4
6
|
|
5
|
-
gem
|
6
|
-
gem
|
7
|
+
gem 'dynamoid', '~> 3.5.0'
|
8
|
+
gem 'pry'
|
7
9
|
|
8
|
-
gemspec path:
|
10
|
+
gemspec path: '../'
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file was generated by Appraisal
|
2
4
|
|
3
|
-
source
|
5
|
+
source 'https://rubygems.org'
|
4
6
|
|
5
|
-
gem
|
6
|
-
gem
|
7
|
+
gem 'dynamoid', '~> 3.6.0'
|
8
|
+
gem 'pry'
|
7
9
|
|
8
|
-
gemspec path:
|
10
|
+
gemspec path: '../'
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file was generated by Appraisal
|
2
4
|
|
3
|
-
source
|
5
|
+
source 'https://rubygems.org'
|
4
6
|
|
5
|
-
gem
|
6
|
-
gem
|
7
|
+
gem 'dynamoid', '~> 3.0'
|
8
|
+
gem 'pry'
|
7
9
|
|
8
|
-
gemspec path:
|
10
|
+
gemspec path: '../'
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This file was generated by Appraisal
|
2
4
|
|
3
|
-
source
|
5
|
+
source 'https://rubygems.org'
|
4
6
|
|
5
|
-
gem
|
6
|
-
gem
|
7
|
+
gem 'dynamoid', git: 'https://github.com/Dynamoid/dynamoid.git'
|
8
|
+
gem 'pry'
|
7
9
|
|
8
|
-
gemspec path:
|
10
|
+
gemspec path: '../'
|