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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 842a67923f31d892cf220492577113c88ac02d5e
4
- data.tar.gz: 77783ecfb709cc07d99ca71b90a7011ea585912d
3
+ metadata.gz: 2b383e4dd3a63a7ab6d8c45cf5220e291c3fb4ea
4
+ data.tar.gz: 94f82e64a6a81e6be4c2aba92e0083a878ab16cc
5
5
  SHA512:
6
- metadata.gz: 0fb84ba82a9c7c0b5d934cae5e7db2fe3150c41cb473e99d03e992eb54159405198c468fbc6b6280024fa9b013223bbcee32468e263010cb3d55ca61c5244240
7
- data.tar.gz: 652125a6a738bf706aef0df66712059ba6799e5c4d7a9de7aa943917b09f38da860b576c09daf10238a2d7b40dd7eb05e2362a6a3b76c911756f3549a5d2f48b
6
+ metadata.gz: a4d7bae75fce6aef40d140febe77928a6d2204bf96fc5fea5aab7141fcae257044b803880fb9d7ee5fdd24c952c6dde83ed4281ea5d9acdb33fa0e7eb1f591fd
7
+ data.tar.gz: 49b090e9c2c554816934abcd17ac020b8bd904ef132b65b7b78f88ffcfdc1b725348e71ce103975f45f86f48f15cd051c6d157b0e457f6994661905e8ccaa520
data/README.md CHANGED
@@ -33,6 +33,10 @@ store['foo'] #=> { 'foo' => 'bar' }
33
33
  store.delete('foo') #=> true
34
34
  ```
35
35
 
36
+ ## TODO
37
+ 1. Switchable Datacenters
38
+ 2. Atomic operations
39
+
36
40
  ## Contributing
37
41
 
38
42
  1. Fork it ( https://github.com/[my-github-username]/consul-kv/fork )
@@ -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 = Mutex.new
13
- @conn = Connection.new
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
@@ -1,5 +1,5 @@
1
1
  module Consul
2
2
  module KV
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: consul-kv
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
  - JGW Maxwell