dynamini 1.11.0 → 2.0.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/Gemfile.lock +10 -10
- data/README.md +6 -5
- data/dynamini.gemspec +1 -2
- data/lib/dynamini/client_interface.rb +0 -11
- data/lib/dynamini/testing.rb +9 -0
- data/spec/dynamini/base_spec.rb +0 -7
- data/spec/dynamini/querying_spec.rb +0 -3
- data/spec/spec_helper.rb +1 -1
- metadata +3 -4
- data/spec/dynamini/client_interface_spec.rb +0 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 11da53293d155b8933c028bcf5d419878f71dc15
|
|
4
|
+
data.tar.gz: 190bb0c142388bd56c1385eec116adc1f99c445e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f6b83322fee0328a7969a1b73e41920807e9fc5201921ea96a9c273891cf7b25b056925b4498786b628a9e1957e79ed8c1e984428c8ad902c8d07bbd9d71649f
|
|
7
|
+
data.tar.gz: bcafd1d511a9106e3c76858456295f78eebc9e0ce23df3a5efb47a42680419b6f34f6d075d7372371b4c6d2629848e86a89d7733799d209f63ede250e5e8fc5a
|
data/Gemfile.lock
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
dynamini (
|
|
4
|
+
dynamini (2.0.0)
|
|
5
5
|
activemodel (>= 3, < 5.0)
|
|
6
6
|
aws-sdk (~> 2)
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
-
activemodel (4.2.
|
|
12
|
-
activesupport (= 4.2.
|
|
11
|
+
activemodel (4.2.5.1)
|
|
12
|
+
activesupport (= 4.2.5.1)
|
|
13
13
|
builder (~> 3.1)
|
|
14
|
-
activesupport (4.2.
|
|
14
|
+
activesupport (4.2.5.1)
|
|
15
15
|
i18n (~> 0.7)
|
|
16
16
|
json (~> 1.7, >= 1.7.7)
|
|
17
17
|
minitest (~> 5.1)
|
|
18
18
|
thread_safe (~> 0.3, >= 0.3.4)
|
|
19
19
|
tzinfo (~> 1.1)
|
|
20
|
-
aws-sdk (2.2.
|
|
21
|
-
aws-sdk-resources (= 2.2.
|
|
22
|
-
aws-sdk-core (2.2.
|
|
20
|
+
aws-sdk (2.2.14)
|
|
21
|
+
aws-sdk-resources (= 2.2.14)
|
|
22
|
+
aws-sdk-core (2.2.14)
|
|
23
23
|
jmespath (~> 1.0)
|
|
24
|
-
aws-sdk-resources (2.2.
|
|
25
|
-
aws-sdk-core (= 2.2.
|
|
24
|
+
aws-sdk-resources (2.2.14)
|
|
25
|
+
aws-sdk-core (= 2.2.14)
|
|
26
26
|
builder (3.2.2)
|
|
27
27
|
coderay (1.1.0)
|
|
28
28
|
diff-lcs (1.2.5)
|
|
@@ -56,7 +56,7 @@ GEM
|
|
|
56
56
|
rb-inotify (>= 0.9)
|
|
57
57
|
lumberjack (1.0.9)
|
|
58
58
|
method_source (0.8.2)
|
|
59
|
-
minitest (5.8.
|
|
59
|
+
minitest (5.8.4)
|
|
60
60
|
nenv (0.2.0)
|
|
61
61
|
notiffany (0.0.8)
|
|
62
62
|
nenv (~> 0.1)
|
data/README.md
CHANGED
|
@@ -15,6 +15,8 @@ Class methods:
|
|
|
15
15
|
* exists?(hash_key, range_key)
|
|
16
16
|
* find_or_new(hash_key, range_key)
|
|
17
17
|
* import(model_array)
|
|
18
|
+
* before_save
|
|
19
|
+
* after_save
|
|
18
20
|
|
|
19
21
|
Note: The range_key arguments are only necessary if your DynamoDB table is configured with a range key.
|
|
20
22
|
|
|
@@ -175,9 +177,9 @@ Vehicle.find('H3LLO').stuff
|
|
|
175
177
|
## Testing
|
|
176
178
|
There's a test client included with this gem, meaning you don't have to connect to a real Dynamo instance when testing.
|
|
177
179
|
You could also use this in development if you dont have a real Dynamo instance yet, but the data saved to it won't persist through a server restart.
|
|
178
|
-
To activate this feature, just
|
|
180
|
+
To activate this feature, just do:
|
|
179
181
|
```ruby
|
|
180
|
-
|
|
182
|
+
require 'dynamini/testing'
|
|
181
183
|
```
|
|
182
184
|
After which any internal API calls will be replaced with calls to Dynamini::TestClient.
|
|
183
185
|
|
|
@@ -188,9 +190,8 @@ Vehicle.client.reset
|
|
|
188
190
|
|
|
189
191
|
So, for instance, to get Rspec working with your test suite the way your ActiveRecord model behaved, add these lines to your spec_helper.rb:
|
|
190
192
|
```ruby
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
}
|
|
193
|
+
require 'dynamini/testing'
|
|
194
|
+
|
|
194
195
|
config.after(:each) {
|
|
195
196
|
Vehicle.client.reset # Large test suites will be very slow and unpredictable otherwise!
|
|
196
197
|
}
|
data/dynamini.gemspec
CHANGED
|
@@ -1,23 +1,12 @@
|
|
|
1
1
|
module Dynamini
|
|
2
2
|
module ClientInterface
|
|
3
3
|
module ClassMethods
|
|
4
|
-
|
|
5
|
-
attr_writer :in_memory
|
|
6
|
-
|
|
7
4
|
def client
|
|
8
|
-
if in_memory
|
|
9
|
-
@client ||= Dynamini::TestClient.new(hash_key, range_key)
|
|
10
|
-
else
|
|
11
5
|
@client ||= Aws::DynamoDB::Client.new(
|
|
12
6
|
region: Dynamini.configuration.region,
|
|
13
7
|
access_key_id: Dynamini.configuration.access_key_id,
|
|
14
8
|
secret_access_key: Dynamini.configuration.secret_access_key
|
|
15
9
|
)
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def in_memory
|
|
20
|
-
@in_memory || false
|
|
21
10
|
end
|
|
22
11
|
end
|
|
23
12
|
|
data/spec/dynamini/base_spec.rb
CHANGED
|
@@ -15,12 +15,10 @@ describe Dynamini::Base do
|
|
|
15
15
|
class TestClassWithRange < Dynamini::Base
|
|
16
16
|
set_hash_key :foo
|
|
17
17
|
set_range_key :bar
|
|
18
|
-
self.in_memory = true
|
|
19
18
|
handle :bar, :integer
|
|
20
19
|
end
|
|
21
20
|
|
|
22
21
|
class TestClassWithCallbacks < Dynamini::Base
|
|
23
|
-
self.in_memory = true
|
|
24
22
|
before_save :before_callback
|
|
25
23
|
after_save :after_callback
|
|
26
24
|
end
|
|
@@ -68,7 +66,6 @@ describe Dynamini::Base do
|
|
|
68
66
|
|
|
69
67
|
context 'when creating a subclass' do
|
|
70
68
|
class Foo < Dynamini::Base
|
|
71
|
-
Foo.in_memory = true
|
|
72
69
|
end
|
|
73
70
|
|
|
74
71
|
it 'should return the object as an instance of the subclass' do
|
|
@@ -286,7 +283,6 @@ describe Dynamini::Base do
|
|
|
286
283
|
class TestValidation < Dynamini::Base
|
|
287
284
|
set_hash_key :bar
|
|
288
285
|
validates_presence_of :foo
|
|
289
|
-
self.in_memory = true
|
|
290
286
|
end
|
|
291
287
|
|
|
292
288
|
it 'should raise its failed validation errors' do
|
|
@@ -318,8 +314,6 @@ describe Dynamini::Base do
|
|
|
318
314
|
set_range_key :abc
|
|
319
315
|
end
|
|
320
316
|
|
|
321
|
-
TestHashRangeTable.in_memory = true
|
|
322
|
-
|
|
323
317
|
let(:time) { Time.now }
|
|
324
318
|
before do
|
|
325
319
|
allow(Time).to receive(:now).and_return(time)
|
|
@@ -473,7 +467,6 @@ describe Dynamini::Base do
|
|
|
473
467
|
before do
|
|
474
468
|
class TestClass < Dynamini::Base
|
|
475
469
|
set_hash_key :foo
|
|
476
|
-
self.in_memory = true
|
|
477
470
|
end
|
|
478
471
|
end
|
|
479
472
|
|
|
@@ -16,7 +16,6 @@ describe Dynamini::Querying do
|
|
|
16
16
|
class TestClassWithRange < Dynamini::Base
|
|
17
17
|
set_hash_key :foo
|
|
18
18
|
set_range_key :bar
|
|
19
|
-
self.in_memory = true
|
|
20
19
|
handle :bar, :integer
|
|
21
20
|
end
|
|
22
21
|
|
|
@@ -42,7 +41,6 @@ describe Dynamini::Querying do
|
|
|
42
41
|
|
|
43
42
|
context 'when retrieving a subclass' do
|
|
44
43
|
class Foo < Dynamini::Base
|
|
45
|
-
self.in_memory = true
|
|
46
44
|
end
|
|
47
45
|
|
|
48
46
|
it 'should return the object as an instance of the subclass' do
|
|
@@ -94,7 +92,6 @@ describe Dynamini::Querying do
|
|
|
94
92
|
context 'a non-numeric range field' do
|
|
95
93
|
it 'should raise an error' do
|
|
96
94
|
class TestClassWithStringRange < Dynamini::Base
|
|
97
|
-
self.in_memory = true
|
|
98
95
|
set_hash_key :group
|
|
99
96
|
set_range_key :user_name
|
|
100
97
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -5,11 +5,11 @@ require 'aws-sdk'
|
|
|
5
5
|
require 'pry'
|
|
6
6
|
require 'fuubar'
|
|
7
7
|
require 'dynamini'
|
|
8
|
+
require 'dynamini/testing'
|
|
8
9
|
|
|
9
10
|
RSpec.configure do |config|
|
|
10
11
|
# For running just wanted tests in guard
|
|
11
12
|
config.filter_run :focus => true
|
|
12
13
|
config.run_all_when_everything_filtered = true
|
|
13
|
-
config.before(:all) { Dynamini::Base.in_memory = true }
|
|
14
14
|
config.after(:each) { Dynamini::Base.client.reset }
|
|
15
15
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dynamini
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Greg Ward
|
|
@@ -15,7 +15,7 @@ authors:
|
|
|
15
15
|
autorequire:
|
|
16
16
|
bindir: bin
|
|
17
17
|
cert_chain: []
|
|
18
|
-
date:
|
|
18
|
+
date: 2016-02-08 00:00:00.000000000 Z
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
21
21
|
name: activemodel
|
|
@@ -150,10 +150,10 @@ files:
|
|
|
150
150
|
- lib/dynamini/increment.rb
|
|
151
151
|
- lib/dynamini/querying.rb
|
|
152
152
|
- lib/dynamini/test_client.rb
|
|
153
|
+
- lib/dynamini/testing.rb
|
|
153
154
|
- lib/dynamini/type_handler.rb
|
|
154
155
|
- spec/dynamini/base_spec.rb
|
|
155
156
|
- spec/dynamini/batch_operations_spec.rb
|
|
156
|
-
- spec/dynamini/client_interface_spec.rb
|
|
157
157
|
- spec/dynamini/dirty_spec.rb
|
|
158
158
|
- spec/dynamini/increment_spec.rb
|
|
159
159
|
- spec/dynamini/querying_spec.rb
|
|
@@ -187,7 +187,6 @@ summary: DynamoDB interface
|
|
|
187
187
|
test_files:
|
|
188
188
|
- spec/dynamini/base_spec.rb
|
|
189
189
|
- spec/dynamini/batch_operations_spec.rb
|
|
190
|
-
- spec/dynamini/client_interface_spec.rb
|
|
191
190
|
- spec/dynamini/dirty_spec.rb
|
|
192
191
|
- spec/dynamini/increment_spec.rb
|
|
193
192
|
- spec/dynamini/querying_spec.rb
|