Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2018-10-11 18:47:49 +0300
committerRémy Coutable <remy@rymai.me>2018-10-11 18:47:49 +0300
commitf60317f414eb97acc515547afd37243b0956d0f6 (patch)
tree5bcd9ee64651773a0b46494e20a25d7014f1dc10 /lib
parenta8513c7dc306aee838074bdd01c1999d8c19f4c3 (diff)
parent21940d1edf1604f192957691e99677d191380543 (diff)
Merge branch 'frontend-feature-flags' into 'master'
Support pushing of feature flags to the frontend Closes gitlab-org/release/framework#17 See merge request gitlab-org/gitlab-ce!22197
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/gon_helper.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/gitlab/gon_helper.rb b/lib/gitlab/gon_helper.rb
index deaa14c8434..c1726659a90 100644
--- a/lib/gitlab/gon_helper.rb
+++ b/lib/gitlab/gon_helper.rb
@@ -30,5 +30,20 @@ module Gitlab
gon.current_user_avatar_url = current_user.avatar_url
end
end
+
+ # Exposes the state of a feature flag to the frontend code.
+ #
+ # name - The name of the feature flag, e.g. `my_feature`.
+ # args - Any additional arguments to pass to `Feature.enabled?`. This allows
+ # you to check if a flag is enabled for a particular user.
+ def push_frontend_feature_flag(name, *args)
+ var_name = name.to_s.camelize(:lower)
+ enabled = Feature.enabled?(name, *args)
+
+ # Here the `true` argument signals gon that the value should be merged
+ # into any existing ones, instead of overwriting them. This allows you to
+ # use this method to push multiple feature flags.
+ gon.push({ features: { var_name => enabled } }, true)
+ end
end
end