Class: Vines::Services::Config
- Inherits:
-
Object
- Object
- Vines::Services::Config
- Defined in:
- lib/vines/services/config.rb
Overview
A Config object is passed to the xmpp connections to give them access to server configuration information like component subdomain host names, storage systems, etc. This class provides the DSL methods used in the conf/config.rb file.
Defined Under Namespace
Classes: Host
Constant Summary collapse
- LOG_LEVELS =
%w[debug info warn error fatal].freeze
- @@instance =
nil
Instance Attribute Summary collapse
-
#vhosts ⇒ Object
readonly
Returns the value of attribute vhosts.
Class Method Summary collapse
Instance Method Summary collapse
- #host(*names, &block) ⇒ Object
- #hosts ⇒ Object
-
#initialize(&block) ⇒ Config
constructor
A new instance of Config.
- #log(level) ⇒ Object
Constructor Details
#initialize(&block) ⇒ Config
Returns a new instance of Config.
23 24 25 26 27 |
# File 'lib/vines/services/config.rb', line 23 def initialize(&block) @vhosts = {} instance_eval(&block) raise "must define at least one virtual host" if @vhosts.empty? end |
Instance Attribute Details
#vhosts ⇒ Object (readonly)
Returns the value of attribute vhosts.
12 13 14 |
# File 'lib/vines/services/config.rb', line 12 def vhosts @vhosts end |
Class Method Details
.configure(&block) ⇒ Object
15 16 17 |
# File 'lib/vines/services/config.rb', line 15 def self.configure(&block) @@instance = self.new(&block) end |
.instance ⇒ Object
19 20 21 |
# File 'lib/vines/services/config.rb', line 19 def self.instance @@instance end |
Instance Method Details
#host(*names, &block) ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/vines/services/config.rb', line 29 def host(*names, &block) names = names.flatten.map {|name| name.downcase } dupes = names.uniq.size != names.size || (@vhosts.keys & names).any? raise "one host definition per domain allowed" if dupes names.each do |name| @vhosts[name] = Host.new(name, &block) end end |
#hosts ⇒ Object
49 50 51 |
# File 'lib/vines/services/config.rb', line 49 def hosts @vhosts.values end |
#log(level) ⇒ Object
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/vines/services/config.rb', line 38 def log(level) const = Logger.const_get(level.to_s.upcase) rescue nil unless LOG_LEVELS.include?(level.to_s) && const raise "log level must be one of: #{LOG_LEVELS.join(', ')}" end log = Class.new.extend(Vines::Log).log log.progname = 'vines-service' log.level = const Blather.logger.level = const end |