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