Module: LaunchDarkly::Impl::Model
- Defined in:
- lib/ldclient-rb/impl/model/serialization.rb
Overview
Class Method Summary collapse
-
.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.
-
.make_all_store_data(received_data, logger = nil) ⇒ Object
Translates a { flags: …, segments: … } object received from LaunchDarkly to the data store format.
-
.serialize(kind, item) ⇒ Object
Abstraction of serializing a feature flag or segment that will be written to a data store.
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.
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.
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.
17 18 19 |
# File 'lib/ldclient-rb/impl/model/serialization.rb', line 17 def self.serialize(kind, item) item.to_json end |