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