dynamodb_framework 1.5.0 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a14cd99712936bca38b2833324d48e653aefbca3
4
- data.tar.gz: a72d99378e3fd88e4c34acf7c1a6113340c2891f
3
+ metadata.gz: fb491b0866bc6f800f212a1ef1de4c686970933e
4
+ data.tar.gz: 0437cd1aa38f066e0277e69e501aa3adffe0ce74
5
5
  SHA512:
6
- metadata.gz: ce4164b5df1be839b74fb3fd686c33b155c05eadd0d953ab39c8944cb00f344087e417e3eebf2ba8668d80c29fb14bcffc6d6b9e0c65fc5c8b560b8c3073b0ce
7
- data.tar.gz: e2bf4eeda87c3e6b7d698838fb67228cd21663c08dd493d40f8662af781c81753d83b2d1a89ccdf52ad4b1bafac3e4f9420bbf6c1da05d80d162aa44a9517061
6
+ metadata.gz: 2f0dac4765ff8aaf699cc0af798985c622fbb9aa9ebe979a2818af17248e93ef6a070b7ec5e76d120dce5cb6f7e674da4f5afb4a2fab9cfa92344525d16f7815
7
+ data.tar.gz: 7838f1d5fb12b15cadd29a93ce358595d894248b97d741e7b355a7747aab86e5250e6aa1e3ed41a791bdde7302deb5c6de444c5fe9f3ee1920dbeb3332c98c1b
@@ -29,4 +29,13 @@ module DynamoDbFramework
29
29
  def self.namespace_delimiter
30
30
  @namespace_delimiter ||= '.'
31
31
  end
32
+ def self.default_store=(value)
33
+ unless value.is_a?(DynamoDbFramework::Store)
34
+ raise 'Invalid default store specified. Store must be of type: [DynamoDbFramework::Store]'
35
+ end
36
+ @default_store = value
37
+ end
38
+ def self.default_store
39
+ @default_store ||= DynamoDbFramework::Store.new
40
+ end
32
41
  end
@@ -46,7 +46,7 @@ module DynamoDbFramework
46
46
  self.instance_variable_set(:@range_key, { field: field, type: type })
47
47
  end
48
48
 
49
- def create(store:, read_capacity: 25, write_capacity: 25)
49
+ def create(store: DynamoDbFramework.default_store, read_capacity: 25, write_capacity: 25)
50
50
  unless self.instance_variable_defined?(:@table)
51
51
  raise DynamoDbFramework::Index::InvalidConfigException.new('Table must be specified.')
52
52
  end
@@ -83,7 +83,7 @@ module DynamoDbFramework
83
83
  table_manager.add_index(table_name, builder.attributes, index)
84
84
  end
85
85
 
86
- def update(store:, read_capacity:, write_capacity:)
86
+ def update(store: DynamoDbFramework.default_store, read_capacity:, write_capacity:)
87
87
  unless self.instance_variable_defined?(:@table)
88
88
  raise DynamoDbFramework::Index::InvalidConfigException.new('Table must be specified.')
89
89
  end
@@ -92,7 +92,7 @@ module DynamoDbFramework
92
92
  DynamoDbFramework::TableManager.new(store).update_index_throughput(table.config[:table_name], full_index_name, read_capacity, write_capacity)
93
93
  end
94
94
 
95
- def drop(store:)
95
+ def drop(store: DynamoDbFramework.default_store)
96
96
  unless self.instance_variable_defined?(:@table)
97
97
  raise DynamoDbFramework::Index::InvalidConfigException.new('Table must be specified.')
98
98
  end
@@ -102,7 +102,7 @@ module DynamoDbFramework
102
102
  DynamoDbFramework::TableManager.new(store).drop_index(table_name, full_index_name)
103
103
  end
104
104
 
105
- def exists?(store:)
105
+ def exists?(store: DynamoDbFramework.default_store)
106
106
  unless self.instance_variable_defined?(:@table)
107
107
  raise DynamoDbFramework::Index::InvalidConfigException.new('Table must be specified.')
108
108
  end
@@ -80,7 +80,7 @@ module DynamoDbFramework
80
80
  self
81
81
  end
82
82
 
83
- def execute(store:, limit: nil, count: false)
83
+ def execute(store: DynamoDbFramework.default_store, limit: nil, count: false)
84
84
  build
85
85
  repository = DynamoDbFramework::Repository.new(store)
86
86
  repository.table_name = @table_name
@@ -41,7 +41,7 @@ module DynamoDbFramework
41
41
  self.instance_variable_set(:@range_key, { field: field, type: type })
42
42
  end
43
43
 
44
- def create(store:, read_capacity: 25, write_capacity: 25)
44
+ def create(store: DynamoDbFramework.default_store, read_capacity: 25, write_capacity: 25)
45
45
  unless self.instance_variable_defined?(:@partition_key)
46
46
  raise DynamoDbFramework::Table::InvalidConfigException.new('Partition key must be specified.')
47
47
  end
@@ -60,15 +60,15 @@ module DynamoDbFramework
60
60
  DynamoDbFramework::TableManager.new(store).create_table({ name: full_table_name, attributes: builder.attributes, read_capacity: read_capacity, write_capacity: write_capacity })
61
61
  end
62
62
 
63
- def update(store:, read_capacity:, write_capacity:)
63
+ def update(store: DynamoDbFramework.default_store, read_capacity:, write_capacity:)
64
64
  DynamoDbFramework::TableManager.new(store).update_throughput(full_table_name, read_capacity, write_capacity)
65
65
  end
66
66
 
67
- def drop(store:)
67
+ def drop(store: DynamoDbFramework.default_store)
68
68
  DynamoDbFramework::TableManager.new(store).drop(full_table_name)
69
69
  end
70
70
 
71
- def exists?(store:)
71
+ def exists?(store: DynamoDbFramework.default_store)
72
72
  DynamoDbFramework::TableManager.new(store).exists?(full_table_name)
73
73
  end
74
74
 
@@ -76,19 +76,19 @@ module DynamoDbFramework
76
76
  DynamoDbFramework::Query.new(table_name: config[:table_name], partition_key: config[:partition_key][:field], partition_value: partition)
77
77
  end
78
78
 
79
- def all(store:)
79
+ def all(store: DynamoDbFramework.default_store)
80
80
  repository = DynamoDbFramework::Repository.new(store)
81
81
  repository.table_name = config[:table_name]
82
82
  repository.all
83
83
  end
84
84
 
85
- def put_item(store:, item:)
85
+ def put_item(store: DynamoDbFramework.default_store, item:)
86
86
  repository = DynamoDbFramework::Repository.new(store)
87
87
  repository.table_name = config[:table_name]
88
88
  repository.put(item)
89
89
  end
90
90
 
91
- def get_item(store:, partition:, range: nil)
91
+ def get_item(store: DynamoDbFramework.default_store, partition:, range: nil)
92
92
  repository = DynamoDbFramework::Repository.new(store)
93
93
  repository.table_name = config[:table_name]
94
94
 
@@ -99,7 +99,7 @@ module DynamoDbFramework
99
99
  end
100
100
  end
101
101
 
102
- def delete_item(store:, partition:, range: nil)
102
+ def delete_item(store: DynamoDbFramework.default_store, partition:, range: nil)
103
103
  repository = DynamoDbFramework::Repository.new(store)
104
104
  repository.table_name = config[:table_name]
105
105
 
@@ -1,3 +1,3 @@
1
1
  module DynamoDbFramework
2
- VERSION = '1.5.0'
2
+ VERSION = '1.5.1'
3
3
  end
@@ -43,6 +43,21 @@ RSpec.describe DynamoDbFramework::Index do
43
43
  expect(table_manager.has_index?(table_name, index_name)).to be true
44
44
  end
45
45
  end
46
+
47
+ context 'when no store is specified' do
48
+ let(:index_name) { ExampleIndex.config[:index_name] }
49
+ before do
50
+ DynamoDbFramework.default_store = store
51
+ if table_manager.has_index?(table_name, index_name)
52
+ table_manager.drop_index(table_name, index_name)
53
+ end
54
+ end
55
+ it 'should create the index using the default store' do
56
+ expect(table_manager.has_index?(table_name, index_name)).to be false
57
+ ExampleIndex.create
58
+ expect(table_manager.has_index?(table_name, index_name)).to be true
59
+ end
60
+ end
46
61
  end
47
62
  context 'when an invalid index class calls the create method' do
48
63
  context 'without a index_name specified' do
@@ -75,6 +90,15 @@ RSpec.describe DynamoDbFramework::Index do
75
90
  it 'should update the index' do
76
91
  ExampleIndex.update(store: store, read_capacity: 50, write_capacity: 50)
77
92
  end
93
+ context 'when no store is specified' do
94
+ let(:index_name) { ExampleIndex.config[:index_name] }
95
+ before do
96
+ DynamoDbFramework.default_store = store
97
+ end
98
+ it 'should update the index using the default store' do
99
+ ExampleIndex.update(read_capacity: 50, write_capacity: 50)
100
+ end
101
+ end
78
102
  end
79
103
  context 'when an invalid index class calls the update method' do
80
104
  context 'without an index_name specified' do
@@ -103,6 +127,15 @@ RSpec.describe DynamoDbFramework::Index do
103
127
  ExampleIndex.drop(store: store)
104
128
  expect(table_manager.has_index?(table_name, index_name)).to be false
105
129
  end
130
+ context 'when no store is specified' do
131
+ before do
132
+ DynamoDbFramework.default_store = store
133
+ end
134
+ it 'should drop the index using the default store' do
135
+ ExampleIndex.drop
136
+ expect(table_manager.has_index?(table_name, index_name)).to be false
137
+ end
138
+ end
106
139
  end
107
140
  context 'when an invalid index class calls the drop method' do
108
141
  context 'without an index_name specified' do
@@ -130,6 +163,14 @@ RSpec.describe DynamoDbFramework::Index do
130
163
  it 'should return true' do
131
164
  expect(ExampleIndex.exists?(store: store)).to be true
132
165
  end
166
+ context 'when no store is specified' do
167
+ before do
168
+ DynamoDbFramework.default_store = store
169
+ end
170
+ it 'should return true using the default store' do
171
+ expect(ExampleIndex.exists?).to be true
172
+ end
173
+ end
133
174
  end
134
175
  context 'when the index does NOT exist' do
135
176
  let(:index_name) { ExampleIndex.config[:index_name] }
@@ -141,6 +182,14 @@ RSpec.describe DynamoDbFramework::Index do
141
182
  it 'should return false' do
142
183
  expect(ExampleIndex.exists?(store: store)).to be false
143
184
  end
185
+ context 'when no store is specified' do
186
+ before do
187
+ DynamoDbFramework.default_store = store
188
+ end
189
+ it 'should return false using the default store' do
190
+ expect(ExampleIndex.exists?).to be false
191
+ end
192
+ end
144
193
  end
145
194
  end
146
195
 
@@ -164,9 +213,10 @@ RSpec.describe DynamoDbFramework::Index do
164
213
  end
165
214
 
166
215
  before do
216
+ DynamoDbFramework::default_store = store
167
217
  table_manager.drop(table_name)
168
- ExampleTable.create(store: store)
169
- ExampleIndex.create(store: store)
218
+ ExampleTable.create
219
+ ExampleIndex.create
170
220
 
171
221
  create_query_item('name 1', 1)
172
222
  create_query_item('name 1', 2)
@@ -187,6 +237,16 @@ RSpec.describe DynamoDbFramework::Index do
187
237
  .execute(store: store)
188
238
  expect(results.length).to eq 4
189
239
  end
240
+ context 'when no store is specified' do
241
+ it 'should return the expected items' do
242
+ results = ExampleIndex.query(partition: 'name 1')
243
+ .number.gt_eq(1)
244
+ .and
245
+ .number.lt_eq(5)
246
+ .execute
247
+ expect(results.length).to eq 4
248
+ end
249
+ end
190
250
  context 'when limit is specified' do
191
251
  it 'should return the expected items' do
192
252
  results = ExampleIndex.query(partition: 'name 1')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamodb_framework
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - vaughanbrittonsage
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-28 00:00:00.000000000 Z
11
+ date: 2017-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler