consul-kv 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/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