dynamoid 1.3.4 → 2.2.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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +3 -0
  4. data/.travis.yml +37 -7
  5. data/Appraisals +11 -0
  6. data/CHANGELOG.md +115 -2
  7. data/Gemfile +2 -0
  8. data/LICENSE.txt +18 -16
  9. data/README.md +253 -34
  10. data/Rakefile +0 -24
  11. data/Vagrantfile +1 -1
  12. data/docker-compose.yml +7 -0
  13. data/dynamoid.gemspec +4 -4
  14. data/gemfiles/rails_4_0.gemfile +3 -3
  15. data/gemfiles/rails_4_1.gemfile +3 -3
  16. data/gemfiles/rails_4_2.gemfile +3 -3
  17. data/gemfiles/rails_5_0.gemfile +2 -1
  18. data/gemfiles/rails_5_1.gemfile +8 -0
  19. data/gemfiles/rails_5_2.gemfile +8 -0
  20. data/lib/dynamoid.rb +31 -31
  21. data/lib/dynamoid/adapter.rb +14 -10
  22. data/lib/dynamoid/adapter_plugin/aws_sdk_v2.rb +188 -100
  23. data/lib/dynamoid/associations.rb +21 -12
  24. data/lib/dynamoid/associations/association.rb +19 -3
  25. data/lib/dynamoid/associations/belongs_to.rb +26 -16
  26. data/lib/dynamoid/associations/has_and_belongs_to_many.rb +0 -16
  27. data/lib/dynamoid/associations/has_many.rb +2 -17
  28. data/lib/dynamoid/associations/has_one.rb +0 -14
  29. data/lib/dynamoid/associations/many_association.rb +19 -6
  30. data/lib/dynamoid/associations/single_association.rb +25 -7
  31. data/lib/dynamoid/config.rb +37 -18
  32. data/lib/dynamoid/config/backoff_strategies/constant_backoff.rb +11 -0
  33. data/lib/dynamoid/config/backoff_strategies/exponential_backoff.rb +25 -0
  34. data/lib/dynamoid/config/options.rb +1 -1
  35. data/lib/dynamoid/criteria/chain.rb +48 -32
  36. data/lib/dynamoid/dirty.rb +23 -4
  37. data/lib/dynamoid/document.rb +88 -5
  38. data/lib/dynamoid/errors.rb +4 -1
  39. data/lib/dynamoid/fields.rb +6 -6
  40. data/lib/dynamoid/finders.rb +42 -12
  41. data/lib/dynamoid/identity_map.rb +0 -1
  42. data/lib/dynamoid/indexes.rb +41 -54
  43. data/lib/dynamoid/persistence.rb +151 -40
  44. data/lib/dynamoid/railtie.rb +1 -1
  45. data/lib/dynamoid/validations.rb +4 -3
  46. data/lib/dynamoid/version.rb +1 -1
  47. metadata +18 -29
  48. data/gemfiles/rails_4_0.gemfile.lock +0 -150
  49. data/gemfiles/rails_4_1.gemfile.lock +0 -154
  50. data/gemfiles/rails_4_2.gemfile.lock +0 -175
  51. data/gemfiles/rails_5_0.gemfile.lock +0 -180
@@ -3,7 +3,7 @@ if defined? (Rails)
3
3
  module Dynamoid
4
4
  class Railtie < Rails::Railtie
5
5
  rake_tasks do
6
- Dir[File.join(File.dirname(__FILE__),'tasks/*.rake')].each { |f| load f }
6
+ Dir[File.join(File.dirname(__FILE__), 'tasks/*.rake')].each { |f| load f }
7
7
  end
8
8
  end
9
9
  end
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  module Dynamoid
3
-
3
+
4
4
  # Provide ActiveModel validations to Dynamoid documents.
5
5
  module Validations
6
6
  extend ActiveSupport::Concern
@@ -12,7 +12,7 @@ module Dynamoid
12
12
  #
13
13
  # @since 0.2.0
14
14
  def save(options = {})
15
- options.reverse_merge!(:validate => true)
15
+ options.reverse_merge!(validate: true)
16
16
  return false if options[:validate] and (not valid?)
17
17
  super
18
18
  end
@@ -30,7 +30,8 @@ module Dynamoid
30
30
  # @since 0.2.0
31
31
  def save!
32
32
  raise Dynamoid::Errors::DocumentNotValid.new(self) unless valid?
33
- save(:validate => false)
33
+ save(validate: false)
34
+ self
34
35
  end
35
36
 
36
37
  module ClassMethods
@@ -1,3 +1,3 @@
1
1
  module Dynamoid
2
- VERSION = "1.3.4"
2
+ VERSION = '2.2.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.4
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Symonds
@@ -17,10 +17,11 @@ authors:
17
17
  - Pascal Corpet
18
18
  - Brian Glusman
19
19
  - Peter Boling
20
+ - Andrew Konchin
20
21
  autorequire:
21
22
  bindir: exe
22
23
  cert_chain: []
23
- date: 2017-09-06 00:00:00.000000000 Z
24
+ date: 2018-05-02 00:00:00.000000000 Z
24
25
  dependencies:
25
26
  - !ruby/object:Gem::Dependency
26
27
  name: activemodel
@@ -82,16 +83,16 @@ dependencies:
82
83
  name: pry
83
84
  requirement: !ruby/object:Gem::Requirement
84
85
  requirements:
85
- - - "~>"
86
+ - - ">="
86
87
  - !ruby/object:Gem::Version
87
- version: '0.10'
88
+ version: '0'
88
89
  type: :development
89
90
  prerelease: false
90
91
  version_requirements: !ruby/object:Gem::Requirement
91
92
  requirements:
92
- - - "~>"
93
+ - - ">="
93
94
  - !ruby/object:Gem::Version
94
- version: '0.10'
95
+ version: '0'
95
96
  - !ruby/object:Gem::Dependency
96
97
  name: bundler
97
98
  requirement: !ruby/object:Gem::Requirement
@@ -180,30 +181,16 @@ dependencies:
180
181
  name: coveralls
181
182
  requirement: !ruby/object:Gem::Requirement
182
183
  requirements:
183
- - - ">="
184
- - !ruby/object:Gem::Version
185
- version: '0'
186
- type: :development
187
- prerelease: false
188
- version_requirements: !ruby/object:Gem::Requirement
189
- requirements:
190
- - - ">="
191
- - !ruby/object:Gem::Version
192
- version: '0'
193
- - !ruby/object:Gem::Dependency
194
- name: rspec-retry
195
- requirement: !ruby/object:Gem::Requirement
196
- requirements:
197
- - - ">="
184
+ - - "~>"
198
185
  - !ruby/object:Gem::Version
199
- version: '0'
186
+ version: '0.8'
200
187
  type: :development
201
188
  prerelease: false
202
189
  version_requirements: !ruby/object:Gem::Requirement
203
190
  requirements:
204
- - - ">="
191
+ - - "~>"
205
192
  - !ruby/object:Gem::Version
206
- version: '0'
193
+ version: '0.8'
207
194
  description: Dynamoid is an ORM for Amazon's DynamoDB that supports offline development,
208
195
  associations, querying, and everything else you'd expect from an ActiveRecord-style
209
196
  replacement.
@@ -216,6 +203,7 @@ extra_rdoc_files:
216
203
  - LICENSE.txt
217
204
  - README.md
218
205
  files:
206
+ - ".coveralls.yml"
219
207
  - ".document"
220
208
  - ".gitignore"
221
209
  - ".rspec"
@@ -227,15 +215,14 @@ files:
227
215
  - README.md
228
216
  - Rakefile
229
217
  - Vagrantfile
218
+ - docker-compose.yml
230
219
  - dynamoid.gemspec
231
220
  - gemfiles/rails_4_0.gemfile
232
- - gemfiles/rails_4_0.gemfile.lock
233
221
  - gemfiles/rails_4_1.gemfile
234
- - gemfiles/rails_4_1.gemfile.lock
235
222
  - gemfiles/rails_4_2.gemfile
236
- - gemfiles/rails_4_2.gemfile.lock
237
223
  - gemfiles/rails_5_0.gemfile
238
- - gemfiles/rails_5_0.gemfile.lock
224
+ - gemfiles/rails_5_1.gemfile
225
+ - gemfiles/rails_5_2.gemfile
239
226
  - lib/dynamoid.rb
240
227
  - lib/dynamoid/adapter.rb
241
228
  - lib/dynamoid/adapter_plugin/aws_sdk_v2.rb
@@ -249,6 +236,8 @@ files:
249
236
  - lib/dynamoid/associations/single_association.rb
250
237
  - lib/dynamoid/components.rb
251
238
  - lib/dynamoid/config.rb
239
+ - lib/dynamoid/config/backoff_strategies/constant_backoff.rb
240
+ - lib/dynamoid/config/backoff_strategies/exponential_backoff.rb
252
241
  - lib/dynamoid/config/options.rb
253
242
  - lib/dynamoid/criteria.rb
254
243
  - lib/dynamoid/criteria/chain.rb
@@ -286,7 +275,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
286
275
  version: '0'
287
276
  requirements: []
288
277
  rubyforge_project:
289
- rubygems_version: 2.6.12
278
+ rubygems_version: 2.4.5
290
279
  signing_key:
291
280
  specification_version: 4
292
281
  summary: Dynamoid is an ORM for Amazon's DynamoDB
@@ -1,150 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- dynamoid (1.3.0)
5
- activemodel (>= 4)
6
- aws-sdk-resources (~> 2)
7
- concurrent-ruby (>= 1.0)
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- actionmailer (4.0.13)
13
- actionpack (= 4.0.13)
14
- mail (~> 2.5, >= 2.5.4)
15
- actionpack (4.0.13)
16
- activesupport (= 4.0.13)
17
- builder (~> 3.1.0)
18
- erubis (~> 2.7.0)
19
- rack (~> 1.5.2)
20
- rack-test (~> 0.6.2)
21
- activemodel (4.0.13)
22
- activesupport (= 4.0.13)
23
- builder (~> 3.1.0)
24
- activerecord (4.0.13)
25
- activemodel (= 4.0.13)
26
- activerecord-deprecated_finders (~> 1.0.2)
27
- activesupport (= 4.0.13)
28
- arel (~> 4.0.0)
29
- activerecord-deprecated_finders (1.0.4)
30
- activesupport (4.0.13)
31
- i18n (~> 0.6, >= 0.6.9)
32
- minitest (~> 4.2)
33
- multi_json (~> 1.3)
34
- thread_safe (~> 0.1)
35
- tzinfo (~> 0.3.37)
36
- appraisal (2.1.0)
37
- bundler
38
- rake
39
- thor (>= 0.14.0)
40
- arel (4.0.2)
41
- aws-sdk-core (2.8.11)
42
- aws-sigv4 (~> 1.0)
43
- jmespath (~> 1.0)
44
- aws-sdk-resources (2.8.11)
45
- aws-sdk-core (= 2.8.11)
46
- aws-sigv4 (1.0.0)
47
- builder (3.1.4)
48
- coderay (1.1.1)
49
- concurrent-ruby (1.0.5)
50
- coveralls (0.8.19)
51
- json (>= 1.8, < 3)
52
- simplecov (~> 0.12.0)
53
- term-ansicolor (~> 1.3)
54
- thor (~> 0.19.1)
55
- tins (~> 1.6)
56
- diff-lcs (1.3)
57
- docile (1.1.5)
58
- erubis (2.7.0)
59
- i18n (0.8.1)
60
- jmespath (1.3.1)
61
- json (2.0.3)
62
- mail (2.6.4)
63
- mime-types (>= 1.16, < 4)
64
- method_source (0.8.2)
65
- mime-types (3.1)
66
- mime-types-data (~> 3.2015)
67
- mime-types-data (3.2016.0521)
68
- mini_portile2 (2.1.0)
69
- minitest (4.7.5)
70
- multi_json (1.12.1)
71
- nokogiri (1.6.8.1)
72
- mini_portile2 (~> 2.1.0)
73
- pry (0.10.4)
74
- coderay (~> 1.1.0)
75
- method_source (~> 0.8.1)
76
- slop (~> 3.4)
77
- rack (1.5.5)
78
- rack-test (0.6.3)
79
- rack (>= 1.0)
80
- rails (4.0.13)
81
- actionmailer (= 4.0.13)
82
- actionpack (= 4.0.13)
83
- activerecord (= 4.0.13)
84
- activesupport (= 4.0.13)
85
- bundler (>= 1.3.0, < 2.0)
86
- railties (= 4.0.13)
87
- sprockets-rails (~> 2.0)
88
- railties (4.0.13)
89
- actionpack (= 4.0.13)
90
- activesupport (= 4.0.13)
91
- rake (>= 0.8.7)
92
- thor (>= 0.18.1, < 2.0)
93
- rake (12.0.0)
94
- rspec (3.5.0)
95
- rspec-core (~> 3.5.0)
96
- rspec-expectations (~> 3.5.0)
97
- rspec-mocks (~> 3.5.0)
98
- rspec-core (3.5.4)
99
- rspec-support (~> 3.5.0)
100
- rspec-expectations (3.5.0)
101
- diff-lcs (>= 1.2.0, < 2.0)
102
- rspec-support (~> 3.5.0)
103
- rspec-mocks (3.5.0)
104
- diff-lcs (>= 1.2.0, < 2.0)
105
- rspec-support (~> 3.5.0)
106
- rspec-retry (0.5.3)
107
- rspec-core (> 3.3, < 3.6)
108
- rspec-support (3.5.0)
109
- simplecov (0.12.0)
110
- docile (~> 1.1.0)
111
- json (>= 1.8, < 3)
112
- simplecov-html (~> 0.10.0)
113
- simplecov-html (0.10.0)
114
- slop (3.6.0)
115
- sprockets (3.7.1)
116
- concurrent-ruby (~> 1.0)
117
- rack (> 1, < 3)
118
- sprockets-rails (2.3.3)
119
- actionpack (>= 3.0)
120
- activesupport (>= 3.0)
121
- sprockets (>= 2.8, < 4.0)
122
- term-ansicolor (1.4.1)
123
- tins (~> 1.0)
124
- thor (0.19.4)
125
- thread_safe (0.3.6)
126
- tins (1.13.2)
127
- tzinfo (0.3.53)
128
- wwtd (1.3.0)
129
- yard (0.9.8)
130
-
131
- PLATFORMS
132
- ruby
133
-
134
- DEPENDENCIES
135
- activesupport (>= 4)
136
- appraisal (~> 2.1)
137
- bundler (~> 1.14)
138
- coveralls
139
- dynamoid!
140
- nokogiri (~> 1.6.8.1)
141
- pry (~> 0.10)
142
- rails (~> 4.0.0)
143
- rake (~> 12.0)
144
- rspec (~> 3.0)
145
- rspec-retry
146
- wwtd (~> 1.3)
147
- yard
148
-
149
- BUNDLED WITH
150
- 1.14.6
@@ -1,154 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- dynamoid (1.3.0)
5
- activemodel (>= 4)
6
- aws-sdk-resources (~> 2)
7
- concurrent-ruby (>= 1.0)
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- actionmailer (4.1.16)
13
- actionpack (= 4.1.16)
14
- actionview (= 4.1.16)
15
- mail (~> 2.5, >= 2.5.4)
16
- actionpack (4.1.16)
17
- actionview (= 4.1.16)
18
- activesupport (= 4.1.16)
19
- rack (~> 1.5.2)
20
- rack-test (~> 0.6.2)
21
- actionview (4.1.16)
22
- activesupport (= 4.1.16)
23
- builder (~> 3.1)
24
- erubis (~> 2.7.0)
25
- activemodel (4.1.16)
26
- activesupport (= 4.1.16)
27
- builder (~> 3.1)
28
- activerecord (4.1.16)
29
- activemodel (= 4.1.16)
30
- activesupport (= 4.1.16)
31
- arel (~> 5.0.0)
32
- activesupport (4.1.16)
33
- i18n (~> 0.6, >= 0.6.9)
34
- json (~> 1.7, >= 1.7.7)
35
- minitest (~> 5.1)
36
- thread_safe (~> 0.1)
37
- tzinfo (~> 1.1)
38
- appraisal (2.1.0)
39
- bundler
40
- rake
41
- thor (>= 0.14.0)
42
- arel (5.0.1.20140414130214)
43
- aws-sdk-core (2.8.11)
44
- aws-sigv4 (~> 1.0)
45
- jmespath (~> 1.0)
46
- aws-sdk-resources (2.8.11)
47
- aws-sdk-core (= 2.8.11)
48
- aws-sigv4 (1.0.0)
49
- builder (3.2.3)
50
- coderay (1.1.1)
51
- concurrent-ruby (1.0.5)
52
- coveralls (0.8.19)
53
- json (>= 1.8, < 3)
54
- simplecov (~> 0.12.0)
55
- term-ansicolor (~> 1.3)
56
- thor (~> 0.19.1)
57
- tins (~> 1.6)
58
- diff-lcs (1.3)
59
- docile (1.1.5)
60
- erubis (2.7.0)
61
- i18n (0.8.1)
62
- jmespath (1.3.1)
63
- json (1.8.6)
64
- mail (2.6.4)
65
- mime-types (>= 1.16, < 4)
66
- method_source (0.8.2)
67
- mime-types (3.1)
68
- mime-types-data (~> 3.2015)
69
- mime-types-data (3.2016.0521)
70
- mini_portile2 (2.1.0)
71
- minitest (5.10.1)
72
- nokogiri (1.6.8.1)
73
- mini_portile2 (~> 2.1.0)
74
- pry (0.10.4)
75
- coderay (~> 1.1.0)
76
- method_source (~> 0.8.1)
77
- slop (~> 3.4)
78
- rack (1.5.5)
79
- rack-test (0.6.3)
80
- rack (>= 1.0)
81
- rails (4.1.16)
82
- actionmailer (= 4.1.16)
83
- actionpack (= 4.1.16)
84
- actionview (= 4.1.16)
85
- activemodel (= 4.1.16)
86
- activerecord (= 4.1.16)
87
- activesupport (= 4.1.16)
88
- bundler (>= 1.3.0, < 2.0)
89
- railties (= 4.1.16)
90
- sprockets-rails (~> 2.0)
91
- railties (4.1.16)
92
- actionpack (= 4.1.16)
93
- activesupport (= 4.1.16)
94
- rake (>= 0.8.7)
95
- thor (>= 0.18.1, < 2.0)
96
- rake (12.0.0)
97
- rspec (3.5.0)
98
- rspec-core (~> 3.5.0)
99
- rspec-expectations (~> 3.5.0)
100
- rspec-mocks (~> 3.5.0)
101
- rspec-core (3.5.4)
102
- rspec-support (~> 3.5.0)
103
- rspec-expectations (3.5.0)
104
- diff-lcs (>= 1.2.0, < 2.0)
105
- rspec-support (~> 3.5.0)
106
- rspec-mocks (3.5.0)
107
- diff-lcs (>= 1.2.0, < 2.0)
108
- rspec-support (~> 3.5.0)
109
- rspec-retry (0.5.3)
110
- rspec-core (> 3.3, < 3.6)
111
- rspec-support (3.5.0)
112
- simplecov (0.12.0)
113
- docile (~> 1.1.0)
114
- json (>= 1.8, < 3)
115
- simplecov-html (~> 0.10.0)
116
- simplecov-html (0.10.0)
117
- slop (3.6.0)
118
- sprockets (3.7.1)
119
- concurrent-ruby (~> 1.0)
120
- rack (> 1, < 3)
121
- sprockets-rails (2.3.3)
122
- actionpack (>= 3.0)
123
- activesupport (>= 3.0)
124
- sprockets (>= 2.8, < 4.0)
125
- term-ansicolor (1.4.1)
126
- tins (~> 1.0)
127
- thor (0.19.4)
128
- thread_safe (0.3.6)
129
- tins (1.13.2)
130
- tzinfo (1.2.3)
131
- thread_safe (~> 0.1)
132
- wwtd (1.3.0)
133
- yard (0.9.8)
134
-
135
- PLATFORMS
136
- ruby
137
-
138
- DEPENDENCIES
139
- activesupport (>= 4)
140
- appraisal (~> 2.1)
141
- bundler (~> 1.14)
142
- coveralls
143
- dynamoid!
144
- nokogiri (~> 1.6.8.1)
145
- pry (~> 0.10)
146
- rails (~> 4.1.0)
147
- rake (~> 12.0)
148
- rspec (~> 3.0)
149
- rspec-retry
150
- wwtd (~> 1.3)
151
- yard
152
-
153
- BUNDLED WITH
154
- 1.14.6