Sha256: 579b29f908db689a7eabc60d25928268d7c678c63fe2f43ff3af9cf86d51b29d

Contents?: true

Size: 1.77 KB

Versions: 24

Compression:

Stored size: 1.77 KB

Contents

require "ldclient-rb/evaluation_detail"

# This file contains any pieces of low-level evaluation logic that don't need to be inside the Evaluator
# class, because they don't depend on any SDK state outside of their input parameters.

module LaunchDarkly
  module Impl
    module EvaluatorHelpers
      #
      # @param flag [LaunchDarkly::Impl::Model::FeatureFlag]
      # @param reason [LaunchDarkly::EvaluationReason]
      #
      def self.evaluation_detail_for_off_variation(flag, reason)
        index = flag.off_variation
        index.nil? ? EvaluationDetail.new(nil, nil, reason) : evaluation_detail_for_variation(flag, index, reason)
      end

      #
      # @param flag [LaunchDarkly::Impl::Model::FeatureFlag]
      # @param index [Integer]
      # @param reason [LaunchDarkly::EvaluationReason]
      #
      def self.evaluation_detail_for_variation(flag, index, reason)
        vars = flag.variations
        if index < 0 || index >= vars.length
          EvaluationDetail.new(nil, nil, EvaluationReason::error(EvaluationReason::ERROR_MALFORMED_FLAG))
          # This error condition has already been logged at the time we received the flag data - see model/feature_flag.rb
        else
          EvaluationDetail.new(vars[index], index, reason)
        end
      end

      #
      # @param context [LaunchDarkly::LDContext]
      # @param kind [String, nil]
      # @param keys [Enumerable<String>]
      # @return [Boolean]
      #
      def self.context_key_in_target_list(context, kind, keys)
        return false unless keys.is_a? Enumerable
        return false if keys.empty?

        matched_context = context.individual_context(kind || LaunchDarkly::LDContext::KIND_DEFAULT)
        return false if matched_context.nil?

        keys.include? matched_context.key
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
launchdarkly-server-sdk-8.8.2 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.8.1 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.8.0 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.7.1 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.7.0 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.6.0 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.5.0 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.4.2 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.4.1 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.4.0 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.3.1 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-7.3.3 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.3.0 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.2.0 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.1.0 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-7.3.2 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-8.0.0 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-7.3.0 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-7.2.0 lib/ldclient-rb/impl/evaluator_helpers.rb
launchdarkly-server-sdk-7.1.0 lib/ldclient-rb/impl/evaluator_helpers.rb