Sha256: afb7353c02d469bad0b3ee06a198717e003f821823bae875e5e9c9a3ba40e1f4

Contents?: true

Size: 1 KB

Versions: 4

Compression:

Stored size: 1 KB

Contents

# frozen_string_literal: true

require "nitro_config"
require "rails/all"
require "sentry-rails"
require "sentry-ruby"

require_relative "dep_shield/deprecation"
require_relative "dep_shield/todos"
require_relative "dep_shield/version"

module DepShield
  class Error < StandardError
    def initialize(message, callstack)
      super(message)

      case callstack
      when Array
        set_backtrace callstack.map(&:to_s)
      when Thread::Backtrace::Location, String
        set_backtrace [callstack.to_s]
      end
    end
  end

module_function

  def todos
    @todos ||= DepShield::Todos.new
  end

  # Takes a deprecation message string. Warns, then raises or reports to Sentry
  #
  # @param name [String]
  # @param message [String]
  # @param callstack [Array<String>]
  # @yieldparam scope [Scope]
  # @return [Event, nil]
  def raise_or_capture!(name:, message:, callstack: caller, **)
    ::DepShield::Deprecation.new(
      name: name, message: message, callstack: callstack
    ).raise_or_capture!
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dep_shield-0.3.0 lib/dep_shield.rb
dep_shield-0.2.1 lib/dep_shield.rb
dep_shield-0.1.2 lib/dep_shield.rb
dep_shield-0.1.1 lib/dep_shield.rb