kayvee 0.0.1 → 0.0.2
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/kayvee.gemspec +1 -0
- data/lib/kayvee/clients/redis.rb +14 -2
- data/lib/kayvee/clients/s3.rb +24 -7
- data/lib/kayvee/store.rb +9 -0
- data/lib/kayvee/version.rb +1 -1
- data/spec/integration_spec.rb +0 -1
- data/spec/kayvee/clients/s3_spec.rb +18 -1
- data/spec/spec_helper.rb +2 -0
- metadata +17 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ec8bb49a4e64a31fde2218b85f89c548ff4e011
|
4
|
+
data.tar.gz: 56c25c1e07fa05de535033db327e41040c77124f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39d7a8feb42aaa182d00eb494eb3fb69a51179cb780d5b8ede6402a0a95edde259ae65dfe7b61bf3771d357553400b795d91b3f170bd16a67e0b9b003141f77b
|
7
|
+
data.tar.gz: c1cd17827047be83847f0708300f8248d3c5a54f7092dcf04f88d27cff007eaf2b9a0c3a4ec037660a45e16c500b1906dcf8beb2d1c35a79f2032207706243c3
|
data/kayvee.gemspec
CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency 'rspec'
|
25
25
|
spec.add_development_dependency 'pry'
|
26
26
|
spec.add_development_dependency 'dotenv'
|
27
|
+
spec.add_development_dependency 'fakeredis'
|
27
28
|
|
28
29
|
spec.add_development_dependency 's3'
|
29
30
|
spec.add_development_dependency 'redis'
|
data/lib/kayvee/clients/redis.rb
CHANGED
@@ -22,7 +22,7 @@ module Kayvee
|
|
22
22
|
#
|
23
23
|
# @return [String\nil] the read string or nil if key does not exist
|
24
24
|
def read(path)
|
25
|
-
@store.get(path)
|
25
|
+
@store.get(_path(path))
|
26
26
|
end
|
27
27
|
|
28
28
|
# @param [String] path the path to read
|
@@ -30,11 +30,23 @@ module Kayvee
|
|
30
30
|
#
|
31
31
|
# @return [Key] the modified key
|
32
32
|
def write(path, value)
|
33
|
-
@store.set(path, value)
|
33
|
+
@store.set(_path(path), value)
|
34
|
+
end
|
35
|
+
|
36
|
+
def size
|
37
|
+
raise NotImplementedError
|
38
|
+
end
|
39
|
+
|
40
|
+
def clear
|
41
|
+
raise NotImplementedError
|
34
42
|
end
|
35
43
|
|
36
44
|
private
|
37
45
|
|
46
|
+
def _path(path)
|
47
|
+
"kayvee:#{path}"
|
48
|
+
end
|
49
|
+
|
38
50
|
def validate_options!
|
39
51
|
true
|
40
52
|
end
|
data/lib/kayvee/clients/s3.rb
CHANGED
@@ -53,18 +53,40 @@ module Kayvee
|
|
53
53
|
obj.save
|
54
54
|
end
|
55
55
|
|
56
|
+
# Check if key exists in the store
|
57
|
+
#
|
58
|
+
# @param [String] path the key path
|
59
|
+
# @return [Bool] true of false
|
56
60
|
def exists?(path)
|
57
61
|
get(path).exists?
|
58
62
|
end
|
59
63
|
|
64
|
+
# Clear the store
|
65
|
+
#
|
66
|
+
# @return [Bool] true if all items removed, else false
|
67
|
+
def clear
|
68
|
+
objects.map(&:destroy).reduce(&:&)
|
69
|
+
end
|
70
|
+
|
71
|
+
# Get the size of the store
|
72
|
+
#
|
73
|
+
# @return [Integer] size of store
|
74
|
+
def size
|
75
|
+
objects.count
|
76
|
+
end
|
77
|
+
|
60
78
|
private
|
61
79
|
|
62
80
|
def build(path)
|
63
|
-
|
81
|
+
objects.build(path)
|
64
82
|
end
|
65
83
|
|
66
84
|
def get(path)
|
67
|
-
|
85
|
+
objects.find(path)
|
86
|
+
end
|
87
|
+
|
88
|
+
def objects
|
89
|
+
bucket.objects
|
68
90
|
end
|
69
91
|
|
70
92
|
def bucket
|
@@ -79,11 +101,6 @@ module Kayvee
|
|
79
101
|
raise OptionMissingError.new, 'missing aws key' unless aws_access_key
|
80
102
|
raise OptionMissingError.new, 'missing aws secret' unless aws_secret_key
|
81
103
|
raise OptionMissingError.new, 'missing bucket name' unless bucket_name
|
82
|
-
raise OptionMissingError.new, 'missing prefix' unless prefix
|
83
|
-
end
|
84
|
-
|
85
|
-
def prefix
|
86
|
-
options[:prefix]
|
87
104
|
end
|
88
105
|
|
89
106
|
def bucket_name
|
data/lib/kayvee/store.rb
CHANGED
data/lib/kayvee/version.rb
CHANGED
data/spec/integration_spec.rb
CHANGED
@@ -9,10 +9,27 @@ module Kayvee
|
|
9
9
|
aws_access_key: ENV['AWS_ACCESS_KEY'],
|
10
10
|
aws_secret_key: ENV['AWS_SECRET_KEY'],
|
11
11
|
bucket_name: ENV['AWS_BUCKET'],
|
12
|
-
prefix: ENV['AWS_PREFIX']
|
13
12
|
})
|
14
13
|
end
|
15
14
|
|
15
|
+
describe '#size' do
|
16
|
+
it 'returns the conut of items in store' do
|
17
|
+
@s3.clear
|
18
|
+
@s3.write('test', 'sup')
|
19
|
+
|
20
|
+
expect(@s3.size).to eq(1)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '#clear' do
|
25
|
+
it 'deletes everything' do
|
26
|
+
@s3.write('test', 'sup')
|
27
|
+
@s3.clear
|
28
|
+
|
29
|
+
expect(@s3.size).to eq(0)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
16
33
|
describe '#write' do
|
17
34
|
it 'can write a string' do
|
18
35
|
@s3.write('test', 'sup')
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kayvee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Taylor Finnell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: fakeredis
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: s3
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -163,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
163
177
|
version: '0'
|
164
178
|
requirements: []
|
165
179
|
rubyforge_project:
|
166
|
-
rubygems_version: 2.
|
180
|
+
rubygems_version: 2.5.1
|
167
181
|
signing_key:
|
168
182
|
specification_version: 4
|
169
183
|
summary: Key value library with numerous backing implementations.
|
@@ -174,4 +188,3 @@ test_files:
|
|
174
188
|
- spec/kayvee/store_spec.rb
|
175
189
|
- spec/kayvee_spec.rb
|
176
190
|
- spec/spec_helper.rb
|
177
|
-
has_rdoc:
|