consul-kv 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 +4 -4
- data/README.md +4 -0
- data/lib/consul/kv/store.rb +16 -8
- data/lib/consul/kv/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b383e4dd3a63a7ab6d8c45cf5220e291c3fb4ea
|
4
|
+
data.tar.gz: 94f82e64a6a81e6be4c2aba92e0083a878ab16cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4d7bae75fce6aef40d140febe77928a6d2204bf96fc5fea5aab7141fcae257044b803880fb9d7ee5fdd24c952c6dde83ed4281ea5d9acdb33fa0e7eb1f591fd
|
7
|
+
data.tar.gz: 49b090e9c2c554816934abcd17ac020b8bd904ef132b65b7b78f88ffcfdc1b725348e71ce103975f45f86f48f15cd051c6d157b0e457f6994661905e8ccaa520
|
data/README.md
CHANGED
data/lib/consul/kv/store.rb
CHANGED
@@ -8,22 +8,23 @@ module Consul
|
|
8
8
|
CannotWriteError = Class.new(StandardError)
|
9
9
|
CannotDeleteError = Class.new(StandardError)
|
10
10
|
|
11
|
-
def initialize
|
12
|
-
@mutex
|
13
|
-
@conn
|
11
|
+
def initialize(prefix = nil)
|
12
|
+
@mutex = Mutex.new
|
13
|
+
@conn = Connection.new
|
14
|
+
@prefix = prefix
|
14
15
|
end
|
15
16
|
|
16
17
|
def get(key)
|
17
18
|
resp = nil
|
18
19
|
@mutex.synchronize do
|
19
|
-
resp = conn.get key, true
|
20
|
+
resp = conn.get build(key), true
|
20
21
|
end
|
21
22
|
return nil if resp.kind_of?(Net::HTTPNotFound)
|
22
23
|
raise CannotReadError unless resp.kind_of?(Net::HTTPSuccess)
|
23
24
|
json = JSON.parse(resp.body)
|
24
|
-
if json.size > 1 || json.first['Key'] != key
|
25
|
+
if json.size > 1 || json.first['Key'] != build(key)
|
25
26
|
json.each_with_object({}) do |item, hsh|
|
26
|
-
hsh[item['Key'].gsub(/\A#{key}\//, '')] = Base64.decode64(item['Value'])
|
27
|
+
hsh[item['Key'].gsub(/\A#{build(key)}\//, '')] = Base64.decode64(item['Value'])
|
27
28
|
end
|
28
29
|
else
|
29
30
|
Base64.decode64 json.first['Value']
|
@@ -34,7 +35,7 @@ module Consul
|
|
34
35
|
def put(key, value)
|
35
36
|
resp = nil
|
36
37
|
@mutex.synchronize do
|
37
|
-
resp = conn.put key, value
|
38
|
+
resp = conn.put build(key), value
|
38
39
|
end
|
39
40
|
raise CannotWriteError unless resp.kind_of?(Net::HTTPSuccess)
|
40
41
|
get key
|
@@ -44,15 +45,22 @@ module Consul
|
|
44
45
|
def delete(key)
|
45
46
|
resp = nil
|
46
47
|
@mutex.synchronize do
|
47
|
-
resp = conn.delete key, true
|
48
|
+
resp = conn.delete build(key), true
|
48
49
|
end
|
49
50
|
raise CannotDeleteError unless resp.kind_of?(Net::HTTPSuccess)
|
51
|
+
true
|
50
52
|
end
|
51
53
|
|
52
54
|
private
|
53
55
|
|
54
56
|
attr_reader :conn
|
55
57
|
|
58
|
+
def build key
|
59
|
+
return key unless @prefix
|
60
|
+
return @prefix if key == ''
|
61
|
+
"#{@prefix}/#{key}"
|
62
|
+
end
|
63
|
+
|
56
64
|
end
|
57
65
|
end
|
58
66
|
end
|
data/lib/consul/kv/version.rb
CHANGED