Sha256: 94c0508a2f079a1c058b88c4c97f01699c662176e051c241c0c9bc1933b8586d
Contents?: true
Size: 1.73 KB
Versions: 43
Compression:
Stored size: 1.73 KB
Contents
# # Author:: Jay Mundrawala (<jdm@getchef.com>) # # Copyright:: 2014, Chef Software, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # require 'chef/event_dispatch/base' class Chef module EventLoggers class UnknownEventLogger < StandardError; end class UnavailableEventLogger < StandardError; end def self.event_loggers_by_name @event_loggers_by_name ||= {} end def self.register(name, logger) event_loggers_by_name[name.to_s] = logger end def self.by_name(name) event_loggers_by_name[name] end def self.available_event_loggers event_loggers_by_name.select do |key, val| val.available? end.keys end def self.new(name) event_logger_class = by_name(name.to_s) or raise UnknownEventLogger, "No event logger found for #{name} (available: #{available_event_loggers.join(', ')})" raise UnavailableEventLogger unless available_event_loggers.include? name.to_s event_logger_class.new end class Base < EventDispatch::Base def self.short_name(name) Chef::EventLoggers.register(name, self) end # Returns true if this implementation of EventLoggers can be used def self.available? false end end end end
Version data entries
43 entries across 43 versions & 1 rubygems