Class: LaunchDarkly::Impl::DataModelPreprocessing::Preprocessor

Inherits:
Object
  • Object
show all
Defined in:
lib/ldclient-rb/impl/model/preprocessed_data.rb

Overview

Since:

  • 5.5.0

Instance Method Summary collapse

Constructor Details

#initialize(logger = nil) ⇒ Preprocessor

Returns a new instance of Preprocessor.

Since:

  • 5.5.0



106
107
108
# File 'lib/ldclient-rb/impl/model/preprocessed_data.rb', line 106

def initialize(logger = nil)
  @logger = logger
end

Instance Method Details

#preprocess_all_items!(kind, items_map) ⇒ Object

Since:

  • 5.5.0



118
119
120
121
122
123
# File 'lib/ldclient-rb/impl/model/preprocessed_data.rb', line 118

def preprocess_all_items!(kind, items_map)
  return items_map if !items_map
  items_map.each do |key, item|
    preprocess_item!(kind, item)
  end
end

#preprocess_flag!(flag) ⇒ Object

Since:

  • 5.5.0



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# File 'lib/ldclient-rb/impl/model/preprocessed_data.rb', line 125

def preprocess_flag!(flag)
  flag[:_preprocessed] = FlagPreprocessed.new(
    EvaluatorHelpers.off_result(flag),
    precompute_multi_variation_results(flag, EvaluationReason::fallthrough(false), EvaluationReason::fallthrough(true))
  )
  (flag[:prerequisites] || []).each do |prereq|
    preprocess_prerequisite!(prereq, flag)
  end
  (flag[:targets] || []).each do |target|
    preprocess_target!(target, flag)
  end
  rules = flag[:rules]
  (rules || []).each_index do |index|
    preprocess_flag_rule!(rules[index], index, flag)
  end
end

#preprocess_item!(kind, item) ⇒ Object

Since:

  • 5.5.0



110
111
112
113
114
115
116
# File 'lib/ldclient-rb/impl/model/preprocessed_data.rb', line 110

def preprocess_item!(kind, item)
  if kind.eql? FEATURES
    preprocess_flag!(item)
  elsif kind.eql? SEGMENTS
    preprocess_segment!(item)
  end
end

#preprocess_segment!(segment) ⇒ Object

Since:

  • 5.5.0



142
143
144
# File 'lib/ldclient-rb/impl/model/preprocessed_data.rb', line 142

def preprocess_segment!(segment)
  # nothing to do for segments currently
end