class Eye::Dsl::ConfigOpts
Public Class Methods
add_notify(type)
click to toggle source
contact options ==============================¶ ↑
Calls superclass method
# File lib/eye/dsl/config_opts.rb, line 23 def self.add_notify(type) create_options_methods([type], Hash) define_method("set_#{type}") do |value| value = value.merge(type: type) super(value) Eye::Notify.validate!(value) end end
Public Instance Methods
contact(contact_name, contact_type, contact, contact_opts = {})
click to toggle source
# File lib/eye/dsl/config_opts.rb, line 35 def contact(contact_name, contact_type, contact, contact_opts = {}) raise Eye::Dsl::Error, "unknown contact_type #{contact_type}" unless Eye::Notify::TYPES[contact_type] raise Eye::Dsl::Error, 'contact should be a String' unless contact.is_a?(String) notify_hash = @config[contact_type] || (@parent && @parent.config[contact_type]) || Eye.parsed_config.settings[contact_type] || {} validate_hash = notify_hash.merge(contact_opts).merge(type: contact_type) Eye::Notify.validate!(validate_hash) @config[:contacts] ||= {} @config[:contacts][contact_name.to_s] = { name: contact_name.to_s, type: contact_type, contact: contact, opts: contact_opts } end
contact_group(contact_group_name, &block)
click to toggle source
# File lib/eye/dsl/config_opts.rb, line 49 def contact_group(contact_group_name, &block) c = Eye::Dsl::ConfigOpts.new nil, self, false c.instance_eval(&block) cfg = c.config @config[:contacts] ||= {} if cfg[:contacts].present? @config[:contacts][contact_group_name.to_s] = cfg[:contacts].values @config[:contacts].merge!(cfg[:contacts]) end end
logger(*args)
click to toggle source
# File lib/eye/dsl/config_opts.rb, line 6 def logger(*args) if args.empty? @config[:logger] else @config[:logger] = args end end
Also aliased as: logger=
syslog(name = 'eye', *args)
click to toggle source
# File lib/eye/dsl/config_opts.rb, line 15 def syslog(name = 'eye', *args) require 'syslog/logger' Syslog::Logger.new(name, *args) rescue LoadError raise Eye::Dsl::Error, 'logger syslog requires Ruby >= 2.0' end