Class: Conferred

Inherits:
Object
  • Object
show all
Defined in:
lib/conferred.rb

Constant Summary collapse

DEFAULT_ETCD_HOST =
"172.17.42.1"
DEFAULT_ETCD_PORT =
"2379"
DEFAULT_ETCD_SCHEME =
"http"
@@provider =
"env"
@@etcd_scheme =
DEFAULT_ETCD_SCHEME
@@etcd_host =
DEFAULT_ETCD_HOST
@@etcd_port =
DEFAULT_ETCD_PORT
@@namespace =
""

Class Method Summary collapse

Class Method Details

.etcd_hostObject



32
33
34
35
# 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) ⇒ Object



49
50
51
# File 'lib/conferred.rb', line 49

def etcd_host=(host)
  @@etcd_host = host
end

.etcd_portObject



37
38
39
# File 'lib/conferred.rb', line 37

def etcd_port
  @@etcd_port || ENV["CONFERRED_ETCD_PORT"] || DEFAULT_ETCD_PORT
end

.etcd_port=(port) ⇒ Object



45
46
47
# File 'lib/conferred.rb', line 45

def etcd_port=(port)
  @@etcd_port = port
end

.etcd_schemeObject



41
42
43
# File 'lib/conferred.rb', line 41

def etcd_scheme
  @@etcd_scheme || ENV["CONFERRED_ETCD_SCHEME"] || DEFAULT_ETCD_SCHEME
end

.etcd_scheme=(scheme) ⇒ Object



53
54
55
# File 'lib/conferred.rb', line 53

def etcd_scheme=(scheme)
  @@etcd_scheme = scheme
end

.etcd_setting_prefixObject



82
83
84
# 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) ⇒ Object



57
58
59
60
61
62
63
# 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

.namespaceObject



28
29
30
# File 'lib/conferred.rb', line 28

def namespace
  @@namespace || ENV["CONFERRED_ETCD_NAMESPACE"] || ""
end

.namespace=(value) ⇒ Object



24
25
26
# File 'lib/conferred.rb', line 24

def namespace=(value)
  @@namespace=value
end

.providerObject



20
21
22
# File 'lib/conferred.rb', line 20

def provider
  @@provider || ENV["CONFERRED_PROVIDER"] || "env"
end

.provider=(value) ⇒ Object

attr_writer :etcd_port, :etcd_scheme, :etcd_host



16
17
18
# File 'lib/conferred.rb', line 16

def provider=(value)
  @@provider=value
end

.setting_name(method_name) ⇒ Object



65
66
67
# File 'lib/conferred.rb', line 65

def setting_name(method_name)
  method_name.to_s.chomp("!").chomp("?").upcase
end

.setting_value(key) ⇒ Object



69
70
71
72
# 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) ⇒ Object



78
79
80
# 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) ⇒ Boolean

Returns:

  • (Boolean)


74
75
76
# File 'lib/conferred.rb', line 74

def setting_value?(key)
  self.setting_value(key) != nil
end