diff options
| author | Nick Thomas <nick@gitlab.com> | 2018-06-05 12:11:58 +0000 |
|---|---|---|
| committer | Nick Thomas <nick@gitlab.com> | 2018-06-05 12:11:58 +0000 |
| commit | 049519e718d84f06af1510d2236a0819372fea56 (patch) | |
| tree | 181abf8901e8be013f0bc8fcda1c5f1ddbaf53e5 /lib | |
| parent | 636d70381e3f5b2fe983127ece216e9bb6a07bb1 (diff) | |
| parent | f71fc9328c42bb67c0ad209dd6503de57fa2bcf8 (diff) | |
| download | gitlab-ce-049519e718d84f06af1510d2236a0819372fea56.tar.gz | |
Merge branch 'override-consider-extend' into 'master'
Also verify if extending would override a class method
See merge request gitlab-org/gitlab-ce!19377
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/gitlab/utils/override.rb | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/gitlab/utils/override.rb b/lib/gitlab/utils/override.rb index 8bf6bcb1fe2..7b2a62fed48 100644 --- a/lib/gitlab/utils/override.rb +++ b/lib/gitlab/utils/override.rb @@ -87,18 +87,28 @@ module Gitlab end def included(base = nil) - return super if base.nil? # Rails concern, ignoring it + super + + queue_verification(base) + end + alias_method :prepended, :included + + def extended(mod) super + queue_verification(mod.singleton_class) + end + + def queue_verification(base) + return unless ENV['STATIC_VERIFICATION'] + if base.is_a?(Class) # We could check for Class in `override` # This could be `nil` if `override` was never called Override.extensions[self]&.add_class(base) end end - alias_method :prepended, :included - def self.extensions @extensions ||= {} end |
