lib/sass/embedded/host/logger_registry.rb
# frozen_string_literal: true module Sass class Embedded class Host # The {LoggerRegistry} class. # # It stores logger and handles log events. class LoggerRegistry def initialize(logger) logger = Structifier.to_struct(logger, :debug, :warn) if logger.respond_to?(:debug) define_singleton_method(:debug) do |event| logger.debug(event.message, span: Protofier.from_proto_source_span(event.span)) end end if logger.respond_to?(:warn) # rubocop:disable Style/GuardClause define_singleton_method(:warn) do |event| logger.warn(event.message, deprecation: event.type == :DEPRECATION_WARNING, span: Protofier.from_proto_source_span(event.span), stack: event.stack_trace) end end end def log(event) case event.type when :DEBUG debug(event) when :DEPRECATION_WARNING, :WARNING warn(event) end end private def debug(event) Kernel.warn(event.formatted) end def warn(event) Kernel.warn(event.formatted) end end private_constant :LoggerRegistry end end end