kayvee 0.0.1 → 0.0.2

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: 7b7440687be4ffbb147a691a428c880bc65de7d1
4
- data.tar.gz: 1b40a0dcdbf76535d2d1ce659f4b0bd729a7072c
3
+ metadata.gz: 1ec8bb49a4e64a31fde2218b85f89c548ff4e011
4
+ data.tar.gz: 56c25c1e07fa05de535033db327e41040c77124f
5
5
  SHA512:
6
- metadata.gz: 18fc9d630e81cfb4d31eac0db406121e8c40e77a86cfec796a8533fabf91295adfebac6e3cc9c424628c8ec314319d02a1d3fedbd18e5bc50f4378bf5b3f9c32
7
- data.tar.gz: e423182c89d0705fc8775f9acdf560f2625bd73842d210d8477ed9c1ee0ad25ff06866e8019d83c7de9a02437312a1d454cdb41c164cd1571a26bfc28cbf17c0
6
+ metadata.gz: 39d7a8feb42aaa182d00eb494eb3fb69a51179cb780d5b8ede6402a0a95edde259ae65dfe7b61bf3771d357553400b795d91b3f170bd16a67e0b9b003141f77b
7
+ data.tar.gz: c1cd17827047be83847f0708300f8248d3c5a54f7092dcf04f88d27cff007eaf2b9a0c3a4ec037660a45e16c500b1906dcf8beb2d1c35a79f2032207706243c3
@@ -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'
@@ -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
@@ -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
- bucket.objects.build(path)
81
+ objects.build(path)
64
82
  end
65
83
 
66
84
  def get(path)
67
- bucket.objects.find(path)
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
@@ -58,6 +58,15 @@ module Kayvee
58
58
  end
59
59
  alias :[] :get
60
60
 
61
+ # Clear the underlying store
62
+ def clear
63
+ @client.clear
64
+ end
65
+
66
+ def size
67
+ @client.size
68
+ end
69
+
61
70
  private
62
71
 
63
72
  def instantiate_client(client, options)
@@ -1,4 +1,4 @@
1
1
  module Kayvee
2
2
  # The current Kayvee version
3
- VERSION = '0.0.1'
3
+ VERSION = '0.0.2'
4
4
  end
@@ -13,7 +13,6 @@ module Kayvee
13
13
  aws_access_key: ENV['AWS_ACCESS_KEY'],
14
14
  aws_secret_key: ENV['AWS_SECRET_KEY'],
15
15
  bucket_name: ENV['AWS_BUCKET'],
16
- prefix: ENV['AWS_PREFIX']
17
16
  })
18
17
  end
19
18
  end
@@ -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')
@@ -3,6 +3,8 @@ ENV['ENV'] = 'test'
3
3
 
4
4
  require 'kayvee'
5
5
  require 'dotenv'
6
+ require 'fakeredis'
7
+ require 'pry'
6
8
 
7
9
  Dotenv.load('.env.test')
8
10
 
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.1
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-06-06 00:00:00.000000000 Z
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.4.5
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: