@@ -6,24 +6,35 @@ module Engine
66 class Environment
77 attr_reader :id , :api_key
88 attr_accessor :project , :feature_states , :amplitude_config , :segment_config ,
9- :mixpanel_config , :heap_config
9+ :mixpanel_config , :heap_config , :identity_overrides
1010
11- def initialize ( id :, api_key :, project :, feature_states : [ ] )
11+ def initialize ( id :, api_key :, project :, feature_states : [ ] , identity_overrides : [ ] )
1212 @id = id
1313 @api_key = api_key
1414 @project = project
1515 @feature_states = feature_states
16+ @identity_overrides = identity_overrides
1617 end
1718
1819 class << self
20+ # rubocop:disable Metrics/MethodLength
1921 def build ( json )
2022 project = Flagsmith ::Engine ::Project . build ( json [ :project ] )
2123 feature_states = json [ :feature_states ] . map do |fs |
2224 Flagsmith ::Engine ::FeatureState . build ( fs )
2325 end
2426
25- new ( **json . slice ( :id , :api_key ) . merge ( project : project , feature_states : feature_states ) )
27+ identity_overrides = json . fetch ( :identity_overrides , [ ] ) . map do |io |
28+ Flagsmith ::Engine ::Identity . build ( io )
29+ end
30+
31+ new ( **json . slice ( :id , :api_key ) . merge (
32+ project : project ,
33+ feature_states : feature_states ,
34+ identity_overrides : identity_overrides
35+ ) )
2636 end
37+ # rubocop:enable Metrics/MethodLength
2738 end
2839 end
2940
0 commit comments