Class: SplitIoClient::Helpers::RepositoryHelper
- Inherits:
-
Object
- Object
- SplitIoClient::Helpers::RepositoryHelper
- Defined in:
- lib/splitclient-rb/helpers/repository_helper.rb
Class Method Summary collapse
- .check_missing_elements(feature_flag, config) ⇒ Object
- .update_feature_flag_repository(feature_flag_repository, feature_flags, change_number, config, clear_storage) ⇒ Object
- .update_rule_based_segment_repository(rule_based_segment_repository, rule_based_segments, change_number, config) ⇒ Object
Class Method Details
.check_missing_elements(feature_flag, config) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/splitclient-rb/helpers/repository_helper.rb', line 25 def self.check_missing_elements(feature_flag, config) unless feature_flag.key?(:impressionsDisabled) feature_flag[:impressionsDisabled] = false if config.debug_enabled config.logger.debug("feature flag (#{feature_flag[:name]}) does not have impressionsDisabled field, setting it to false") end end unless feature_flag.key?(:prerequisites) feature_flag[:prerequisites] = [] if config.debug_enabled config.logger.debug("feature flag (#{feature_flag[:name]}) does not have prerequisites field, setting it to empty array") end end feature_flag end |
.update_feature_flag_repository(feature_flag_repository, feature_flags, change_number, config, clear_storage) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/splitclient-rb/helpers/repository_helper.rb', line 6 def self.update_feature_flag_repository(feature_flag_repository, feature_flags, change_number, config, clear_storage) to_add = [] to_delete = [] feature_flags.each do |feature_flag| if Engine::Models::Split.archived?(feature_flag) || !feature_flag_repository.flag_set_filter.intersect?(feature_flag[:sets]) config.logger.debug("removing feature flag from store(#{feature_flag})") if config.debug_enabled to_delete.push(feature_flag) next end feature_flag = check_missing_elements(feature_flag, config) config.logger.debug("storing feature flag (#{feature_flag[:name]})") if config.debug_enabled to_add.push(feature_flag) end feature_flag_repository.clear if clear_storage feature_flag_repository.update(to_add, to_delete, change_number) end |
.update_rule_based_segment_repository(rule_based_segment_repository, rule_based_segments, change_number, config) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/splitclient-rb/helpers/repository_helper.rb', line 43 def self.update_rule_based_segment_repository(rule_based_segment_repository, rule_based_segments, change_number, config) to_add = [] to_delete = [] rule_based_segments.each do |rule_based_segment| if Engine::Models::Split.archived?(rule_based_segment) config.logger.debug("removing rule based segment from store(#{rule_based_segment})") if config.debug_enabled to_delete.push(rule_based_segment) next end config.logger.debug("storing rule based segment (#{rule_based_segment[:name]})") if config.debug_enabled to_add.push(rule_based_segment) end rule_based_segment_repository.update(to_add, to_delete, change_number) end |