Class: Object

Inherits:
BasicObject
Defined in:
lib/ext/feature_branch.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.feature_branch(feature_name, user_id = nil, &feature_work) ⇒ Object



3
4
5
6
7
# File 'lib/ext/feature_branch.rb', line 3

def self.feature_branch(feature_name, user_id = nil, &feature_work)
  if feature_enabled?(feature_name, user_id)
    feature_work.call
  end
end

.feature_enabled?(feature_name, user_id = nil) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
13
14
15
16
17
18
# File 'lib/ext/feature_branch.rb', line 10

def self.feature_enabled?(feature_name, user_id = nil)
  normalized_feature_name = feature_name.to_s.downcase

  value = AbstractFeatureBranch.application_features[normalized_feature_name]
  if value == 'per_user'
    value = AbstractFeatureBranch.user_features_storage.sismember("#{AbstractFeatureBranch::ENV_FEATURE_PREFIX}#{normalized_feature_name}", user_id)
  end
  value
end

Instance Method Details

#feature_branch(feature_name, user_id = nil, &feature_work) ⇒ Object



21
22
23
# File 'lib/ext/feature_branch.rb', line 21

def feature_branch(feature_name, user_id = nil, &feature_work)
  Object.feature_branch(feature_name.to_s, user_id, &feature_work)
end

#feature_enabled?(feature_name, user_id = nil) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/ext/feature_branch.rb', line 26

def feature_enabled?(feature_name, user_id = nil)
  Object.feature_enabled?(feature_name.to_s, user_id)
end