class Conferred
Constants
- DEFAULT_ETCD_HOST
- DEFAULT_ETCD_PORT
- DEFAULT_ETCD_SCHEME
Public Class Methods
etcd_host()
click to toggle source
# File lib/conferred.rb, line 32 def etcd_host # if not provided set host to default docker host ip from within a container @@etcd_host || ENV["CONFERRED_ETCD_HOST"] || DEFAULT_ETCD_HOST end
etcd_host=(host)
click to toggle source
# File lib/conferred.rb, line 49 def etcd_host=(host) @@etcd_host = host end
etcd_port()
click to toggle source
# File lib/conferred.rb, line 37 def etcd_port @@etcd_port || ENV["CONFERRED_ETCD_PORT"] || DEFAULT_ETCD_PORT end
etcd_port=(port)
click to toggle source
# File lib/conferred.rb, line 45 def etcd_port=(port) @@etcd_port = port end
etcd_scheme()
click to toggle source
# File lib/conferred.rb, line 41 def etcd_scheme @@etcd_scheme || ENV["CONFERRED_ETCD_SCHEME"] || DEFAULT_ETCD_SCHEME end
etcd_scheme=(scheme)
click to toggle source
# File lib/conferred.rb, line 53 def etcd_scheme=(scheme) @@etcd_scheme = scheme end
etcd_setting_prefix()
click to toggle source
# File lib/conferred.rb, line 82 def etcd_setting_prefix "#{self.etcd_scheme}://#{self.etcd_host}:#{self.etcd_port}/#{etcd_setting_namespace}" end
method_missing(setting, *args, &block)
click to toggle source
Calls superclass method
# File lib/conferred.rb, line 57 def method_missing(setting, *args, &block) super if setting =~ /#{provider}_setting_value/ method = :setting_value method = :setting_value? if setting[-1] == "?" method = :setting_value! if setting[-1] == "!" self.send method, setting end
namespace()
click to toggle source
# File lib/conferred.rb, line 28 def namespace @@namespace || ENV["CONFERRED_ETCD_NAMESPACE"] || "" end
namespace=(value)
click to toggle source
# File lib/conferred.rb, line 24 def namespace=(value) @@namespace=value end
provider()
click to toggle source
# File lib/conferred.rb, line 20 def provider @@provider || ENV["CONFERRED_PROVIDER"] || "env" end
provider=(value)
click to toggle source
attr_writer :etcd_port, :etcd_scheme, :etcd_host
# File lib/conferred.rb, line 16 def provider=(value) @@provider=value end
setting_name(method_name)
click to toggle source
# File lib/conferred.rb, line 65 def setting_name(method_name) method_name.to_s.chomp("!").chomp("?").upcase end
setting_value(key)
click to toggle source
# File lib/conferred.rb, line 69 def setting_value(key) #raise "Conferred: Undefined provider (#{@@provider})" unless self.responds_to setting_method_name self.send(setting_method_name, key) end
setting_value!(key)
click to toggle source
# File lib/conferred.rb, line 78 def setting_value!(key) self.setting_value(key) || raise("#{self.setting_name(key)} missing from environment") end
setting_value?(key)
click to toggle source
# File lib/conferred.rb, line 74 def setting_value?(key) self.setting_value(key) != nil end
Private Class Methods
env_setting_value(key)
click to toggle source
# File lib/conferred.rb, line 88 def env_setting_value(key) ENV[self.setting_name(key)] end
etcd_setting_endpoint(key)
click to toggle source
# File lib/conferred.rb, line 101 def etcd_setting_endpoint(key) URI("#{self.etcd_setting_prefix}#{key}") end
etcd_setting_namespace()
click to toggle source
# File lib/conferred.rb, line 105 def etcd_setting_namespace return "" unless self.namespace return "" if self.namespace.empty? "#{self.namespace}/" end
etcd_setting_value(key)
click to toggle source
# File lib/conferred.rb, line 92 def etcd_setting_value(key) begin resp = JSON.parse(Net::HTTP.get(etcd_setting_endpoint(key))) resp["node"]["value"] rescue env_setting_value(key) end end
setting_method_name()
click to toggle source
# File lib/conferred.rb, line 112 def setting_method_name "#{self.provider}_setting_value".to_sym end