Sha256: 13885126887eeeef3f69b12458b1e54ff3fee25338e5cc2c80e05af05660cf22

Contents?: true

Size: 973 Bytes

Versions: 3

Compression:

Stored size: 973 Bytes

Contents

# typed: strict
# frozen_string_literal: true

require "sorbet-runtime"
require "sorbet-struct-comparable"
require "zeitwerk"
loader = Zeitwerk::Loader.for_gem
loader.setup

# Sorbet-aware implementation of the OpenFeature specification
module OpenFeature
  class << self
    extend T::Sig

    sig { returns(ProviderMetadata) }
    def provider_metadata
      configuration.provider_metadata
    end

    sig { params(provider: Provider).void }
    def set_provider(provider) # rubocop:disable Naming/AccessorMethodName
      configuration.set_provider(provider)
    end

    sig { params(hooks: T.any(Hook, T::Array[Hook])).void }
    def add_hooks(hooks)
      configuration.add_hooks(hooks)
    end

    sig { params(name: T.nilable(String)).returns(Client) }
    def create_client(name: nil)
      Client.new(provider: configuration.provider, name: name)
    end

    sig { returns(Configuration) }
    def configuration
      Configuration.instance
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
openfeature-sdk-sorbet-0.1.2 lib/open_feature.rb
openfeature-sdk-sorbet-0.1.1 lib/open_feature.rb
openfeature-sdk-sorbet-0.1.0 lib/open_feature.rb