dynamoid 1.3.4 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
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