summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLin Jen-Shin <godfat@godfat.org>2018-08-17 18:44:06 +0800
committerLin Jen-Shin <godfat@godfat.org>2018-08-17 18:44:06 +0800
commit42d2d64b84ee555c1c1520576652de43a9ce534a (patch)
tree6794e5d09d91c7a578f4548bd266b9086040e288
parentc6f7f9389c775cd9f76cdfe545a643f0e1b89229 (diff)
downloadgitlab-ce-42d2d64b84ee555c1c1520576652de43a9ce534a.tar.gz
Mention how to override CE class methodsdocs-mention-how-to-override-class-methods
-rw-r--r--doc/development/ee_features.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/doc/development/ee_features.md b/doc/development/ee_features.md
index 32de741c9fe..1cd873b6fe3 100644
--- a/doc/development/ee_features.md
+++ b/doc/development/ee_features.md
@@ -258,6 +258,31 @@ end
[`extend ::Gitlab::Utils::Override`]: utilities.md#override
+##### Overriding CE class methods
+
+The same applies to class methods, except we want to use
+`ActiveSupport::Concern` and put `extend ::Gitlab::Utils::Override`
+within the block of `class_methods`. Here's an example:
+
+```ruby
+module EE
+ module Groups
+ module GroupMembersController
+ extend ActiveSupport::Concern
+
+ class_methods do
+ extend ::Gitlab::Utils::Override
+
+ override :admin_not_required_endpoints
+ def admin_not_required_endpoints
+ super.concat(%i[update override])
+ end
+ end
+ end
+ end
+end
+```
+
#### Use self-descriptive wrapper methods
When it's not possible/logical to modify the implementation of a
@@ -665,6 +690,9 @@ module EE
extend ActiveSupport::Concern
class_methods do
+ extend ::Gitlab::Utils::Override
+
+ override :update_params_at_least_one_of
def update_params_at_least_one_of
super.push(*%i[
squash