Consul::Client

A consul client that gracefully supports offline reads/writes for dev

Installation

Add this line to your application's Gemfile:

gem 'consul-client', :git => 'ssh://[email protected]/goldstar/consul-client.git'

And then execute:

$ bundle

Usage

Basic Usage

The main methods to use are Consul::Client.read and Consul::Client.write, these will perform all kv queries within the namespace defined by Consul::Client.config.namespace

>> Consul::Client.config.namespace = "/bags"
>> mydata = {foo:1, bar:[1,2,:three], baz:false, bat:{one:1, two:2, three:3}}
=> {:foo=>1, :bar=>[1, 2, :three], :baz=>false, :bat=>{:one=>1, :two=>2, :three=>3}}
>> consul::Client.write('/some/key', mydata)
=> #<Consul::Response:0x007fec1c893180
>> Consul::Client.read('/some/key')
=> {:foo=>1, :bar=>[1, 2, :three], :baz=>false, :bat=>{:one=>1, :two=>2, :three=>3}}

curl "http://consul:8500/v1/kv/bags/some/key?raw"
---
:foo: 1
:bar:
- 1
- 2
- :three
:baz: false
:bat:
  :one: 1
  :two: 2
  :three: 3

Tweakables

>> Consul::Client.config.host = "consul_server"   # default: "consul"
>> Consul::Client.config.port = 12345             # default: 8500
>> Consul::Client.config.namespace = "/foo"       # default: "/bags"

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/goldstar/consul-client.

License

The gem is available as open source under the terms of the MIT License.