lib/dependabot/experiments.rb



# typed: strict
# frozen_string_literal: true

require "sorbet-runtime"

module Dependabot
  module Experiments
    extend T::Sig

    @experiments = T.let({}, T::Hash[T.any(String, Symbol), T.untyped])

    sig { returns(T::Hash[T.any(String, Symbol), T.untyped]) }
    def self.reset!
      @experiments = {}
    end

    sig { params(name: T.any(String, Symbol), value: T.untyped).void }
    def self.register(name, value)
      @experiments[name.to_sym] = value
    end

    sig { params(name: T.any(String, Symbol)).returns(T::Boolean) }
    def self.enabled?(name)
      !!@experiments[name.to_sym]
    end
  end
end