Sha256: 9f01205e5f8dd03d69cf18380a36eac14935d467df34f5c6148f98a076c7c373
Contents?: true
Size: 1.35 KB
Versions: 1
Compression:
Stored size: 1.35 KB
Contents
module WarningSigns class Deprecation attr_accessor :message, :source, :category, :backtrace def initialize(message, source:, category: nil, backtrace: nil) @message = message @source = source.to_s.downcase.inquiry @category = category @backtrace = backtrace end def handler World.instance.handler_for(self) end # force raise to be the last element if it is present def behaviors result = (handler&.environment&.behaviors || []).inquiry return result unless result.raise? (result - ["raise"]) << "raise" end def backtrace_lines lines = handler&.backtrace_lines || 0 return "" if lines.zero? backtrace[1..lines].join("\n") end def invoke behaviors.each do |behavior| case behavior when "raise" raise UnhandledDeprecationError, message when "log" Rails.logger.warn(message) backtrace_lines.split("\n").each { Rails.logger.warn(_1) } when "stderr" $stderr.puts(message) # standard:disable Style/StderrPuts $stderr.puts(backtrace_lines) # standard:disable Style/StderrPuts when "stdout" $stdout.puts(message) # standard:disable Style/StdoutPuts $stdout.puts(backtrace_lines) # standard:disable Style/StdoutPuts end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
warning_signs-0.5.0 | lib/warning_signs/deprecation.rb |