lib/ldclient-rb/impl/model/feature_flag.rb in launchdarkly-server-sdk-7.3.3 vs lib/ldclient-rb/impl/model/feature_flag.rb in launchdarkly-server-sdk-8.0.0

- old
+ new

@@ -24,18 +24,22 @@ @data = data @key = data[:key] @version = data[:version] @deleted = !!data[:deleted] return if @deleted + migration_settings = data[:migration] || {} + @migration_settings = MigrationSettings.new(migration_settings[:checkRatio]) + @sampling_ratio = data[:samplingRatio] + @exclude_from_summaries = !!data[:excludeFromSummaries] @variations = data[:variations] || [] @on = !!data[:on] fallthrough = data[:fallthrough] || {} @fallthrough = VariationOrRollout.new(fallthrough[:variation], fallthrough[:rollout], self, errors, "fallthrough") @off_variation = data[:offVariation] check_variation_range(self, errors, @off_variation, "off variation") @prerequisites = (data[:prerequisites] || []).map do |prereq_data| - Prerequisite.new(prereq_data, self) + Prerequisite.new(prereq_data, self, errors) end @targets = (data[:targets] || []).map do |target_data| Target.new(target_data, self, errors) end @context_targets = (data[:contextTargets] || []).map do |target_data| @@ -61,10 +65,16 @@ attr_reader :key # @return [Integer] attr_reader :version # @return [Boolean] attr_reader :deleted + # @return [MigrationSettings, nil] + attr_reader :migration_settings + # @return [Integer, nil] + attr_reader :sampling_ratio + # @return [Boolean, nil] + attr_reader :exclude_from_summaries # @return [Array] attr_reader :variations # @return [Boolean] attr_reader :on # @return [Integer|nil] @@ -106,16 +116,17 @@ as_json.to_json(*a) end end class Prerequisite - def initialize(data, flag) + def initialize(data, flag, errors_out = nil) @data = data @key = data[:key] @variation = data[:variation] @failure_result = EvaluatorHelpers.evaluation_detail_for_off_variation(flag, EvaluationReason::prerequisite_failed(@key)) + check_variation_range(flag, errors_out, @variation, "prerequisite") end # @return [Hash] attr_reader :data # @return [String] @@ -168,9 +179,22 @@ attr_reader :clauses # @return [LaunchDarkly::Impl::Model::EvalResultFactoryMultiVariations] attr_reader :match_results # @return [LaunchDarkly::Impl::Model::VariationOrRollout] attr_reader :variation_or_rollout + end + + + class MigrationSettings + # + # @param check_ratio [Int, nil] + # + def initialize(check_ratio) + @check_ratio = check_ratio + end + + # @return [Integer, nil] + attr_reader :check_ratio end class VariationOrRollout def initialize(variation, rollout_data, flag = nil, errors_out = nil, description = nil) @variation = variation