diff options
Diffstat (limited to 'lib/feature_wrapper.rb')
-rw-r--r-- | lib/feature_wrapper.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/feature_wrapper.rb b/lib/feature_wrapper.rb new file mode 100644 index 00000000000..b55bfbb423f --- /dev/null +++ b/lib/feature_wrapper.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +require 'unleash' +require 'unleash/context' + +class FeatureWrapper + def self.enabled?(key, user: nil, thing: nil, default_enabled: false) + unleash_server_url = ENV['GITLAB_FEATURE_FLAG_SERVER_URL'] + instance_id = ENV['GITLAB_FEATURE_FLAG_INSTANCE_ID'] + app_name = Rails.env + + if unleash_server_url + key_string = key.to_s + + unleash = Unleash::Client.new({ + url: unleash_server_url, + instance_id: instance_id, + app_name: app_name + }) + + unleash_context = Unleash::Context.new + + unleash_context.user_id = user.email if user + + unleash.is_enabled?(key_string, unleash_context) + else + Feature.enabled?(key, thing, default_enabled: default_enabled) + end + end +end |