Method: Optimizely::Project#get_enabled_features

Defined in:
lib/optimizely.rb

#get_enabled_features(user_id, attributes = nil) ⇒ feature flag keys

Gets keys of all feature flags which are enabled for the user.

Parameters:

  • user_id
    • ID for user.

  • attributes (defaults to: nil)
    • Dict representing user attributes.

Returns:

  • (feature flag keys)

    A List of feature flag keys that are enabled for the user.



550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
# File 'lib/optimizely.rb', line 550

def get_enabled_features(user_id, attributes = nil)
  enabled_features = []
  unless is_valid
    @logger.log(Logger::ERROR, InvalidProjectConfigError.new('get_enabled_features').message)
    return enabled_features
  end

  return enabled_features unless Optimizely::Helpers::Validator.inputs_valid?(
    {
      user_id: user_id
    }, @logger, Logger::ERROR
  )

  return enabled_features unless user_inputs_valid?(attributes)

  config = project_config

  config.feature_flags.each do |feature|
    enabled_features.push(feature['key']) if is_feature_enabled(
      feature['key'],
      user_id,
      attributes
    ) == true
  end
  enabled_features
end