Sha256: ae349b81f33512c270008de3f3ef9ff7c1c1b86df17527cbd3760c12ac61776e
Contents?: true
Size: 1.59 KB
Versions: 3
Compression:
Stored size: 1.59 KB
Contents
class Eye::Dsl::ConfigOpts < Eye::Dsl::PureOpts create_options_methods([:logger], String) create_options_methods([:logger_level], Fixnum) create_options_methods([:http], Hash) def set_logger(logger) logger.blank? ? super('') : super end # ==== contact options ============================== 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 Eye::Notify::TYPES.keys.each { |name| add_notify(name) } 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 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 end
Version data entries
3 entries across 3 versions & 2 rubygems
Version | Path |
---|---|
eye-0.4.2 | lib/eye/dsl/config_opts.rb |
reel-eye-0.4.1 | lib/eye/dsl/config_opts.rb |
eye-0.4.1 | lib/eye/dsl/config_opts.rb |