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