dynamodb_framework 1.5.0 → 1.5.1

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 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