class Muchkeys::ConsulClient

Attributes

application[RW]

Public Class Methods

new(application) click to toggle source
# File lib/muchkeys/consul_client.rb, line 7
def initialize(application)
  @application = application
end

Public Instance Methods

consul_insert_key_url(key_name, **query) click to toggle source
# File lib/muchkeys/consul_client.rb, line 48
def consul_insert_key_url(key_name, **query)
  URI("#{config.consul_url}/v1/kv/#{key_name}?#{query.to_query}")
end
consul_key_url(key_name) click to toggle source
# File lib/muchkeys/consul_client.rb, line 40
def consul_key_url(key_name)
  URI("#{config.consul_url}/v1/kv/#{key_name}?raw")
end
consul_recurse_url(path) click to toggle source
# File lib/muchkeys/consul_client.rb, line 44
def consul_recurse_url(path)
  URI("#{config.consul_url}/v1/kv/#{path}?recurse")
end
delete(key) click to toggle source
# File lib/muchkeys/consul_client.rb, line 34
def delete(key)
  url = consul_key_url(key)
  raise SafetyViolation unless @unsafe
  Net::HTTP.new(url.host, url.port).send_request('DELETE', url.request_uri)
end
get(key, recursive: false) click to toggle source
# File lib/muchkeys/consul_client.rb, line 15
def get(key, recursive: false)
  url = recursive ? consul_recurse_url(key) : consul_key_url(key)
  response = Net::HTTP.get_response(url)

  if response.code == "200"
    response.body
  else
    nil
  end
rescue Errno::ECONNREFUSED
  nil
end
put(value, key, **options) click to toggle source
# File lib/muchkeys/consul_client.rb, line 28
def put(value, key, **options)
  url = consul_insert_key_url(key, **options)
  raise SafetyViolation unless @unsafe
  Net::HTTP.new(url.host, url.port).send_request('PUT', url.request_uri, value)
end
unsafe=(toggle) click to toggle source
# File lib/muchkeys/consul_client.rb, line 11
def unsafe=(toggle)
  @unsafe = toggle
end