Sha256: a1f385e041a9573f5b83d13af24c6148f578289e2dc0915d8add255e35050ca4
Contents?: true
Size: 1.16 KB
Versions: 3
Compression:
Stored size: 1.16 KB
Contents
require 'lita' require 'lita/handler' module Lita class Handler def config_valid? valid = true self.class.config_options.each do |config_option| if config_option.required? and config[config_option.name].nil? log.error "#{self.class.name.split('::').last}: missing #{config_option.name} setting" valid = false end end valid end class ConfigOption < Struct.new( :name, :required, :default ) alias_method :required?, :required end class << self def inherited(subclass) handlers << subclass super end def handlers @handlers ||= [] end def config(name, required: true, default: nil) config_options << ConfigOption.new(name, required, default) end def config_options @config_options ||= [] end def default_config(default) config_options.each do |config_option| default[config_option.name] = config_option.default end end def disabled? Lita.config.disabled and Lita.config.disabled.include?(namespace.to_sym) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
lita-ext-1.1.0 | lib/lita/ext/handler.rb |
lita-ext-1.1.0.beta2 | lib/lita/ext/handler.rb |
lita-ext-1.1.0.beta1 | lib/lita/ext/handler.rb |