Module: LaunchDarkly::Impl::Model

Defined in:
lib/ldclient-rb/impl/model/serialization.rb

Overview

Since:

  • 5.5.0

Class Method Summary collapse

Class Method Details

.deserialize(kind, json, logger = nil) ⇒ Object

Abstraction of deserializing a feature flag or segment that was read from a data store or received from LaunchDarkly.

Since:

  • 5.5.0



8
9
10
11
12
13
# File 'lib/ldclient-rb/impl/model/serialization.rb', line 8

def self.deserialize(kind, json, logger = nil)
  return nil if json.nil?
  item = JSON.parse(json, symbolize_names: true)
  DataModelPreprocessing::Preprocessor.new(logger).preprocess_item!(kind, item)
  item
end

.make_all_store_data(received_data, logger = nil) ⇒ Object

Translates a { flags: …, segments: … } object received from LaunchDarkly to the data store format.

Since:

  • 5.5.0



22
23
24
25
26
27
28
29
# File 'lib/ldclient-rb/impl/model/serialization.rb', line 22

def self.make_all_store_data(received_data, logger = nil)
  preprocessor = DataModelPreprocessing::Preprocessor.new(logger)
  flags = received_data[:flags]
  preprocessor.preprocess_all_items!(FEATURES, flags)
  segments = received_data[:segments]
  preprocessor.preprocess_all_items!(SEGMENTS, segments)
  { FEATURES => flags, SEGMENTS => segments }
end

.serialize(kind, item) ⇒ Object

Abstraction of serializing a feature flag or segment that will be written to a data store. Currently we just call to_json.

Since:

  • 5.5.0



17
18
19
# File 'lib/ldclient-rb/impl/model/serialization.rb', line 17

def self.serialize(kind, item)
  item.to_json
end