summaryrefslogtreecommitdiff
path: root/lib/gitlab/view/presenter
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/view/presenter')
-rw-r--r--lib/gitlab/view/presenter/base.rb2
-rw-r--r--lib/gitlab/view/presenter/delegated.rb6
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/gitlab/view/presenter/base.rb b/lib/gitlab/view/presenter/base.rb
index 83c8ba5c1cf..dbfe0941e4d 100644
--- a/lib/gitlab/view/presenter/base.rb
+++ b/lib/gitlab/view/presenter/base.rb
@@ -1,6 +1,8 @@
module Gitlab
module View
module Presenter
+ CannotOverrideMethodError = Class.new(StandardError)
+
module Base
extend ActiveSupport::Concern
diff --git a/lib/gitlab/view/presenter/delegated.rb b/lib/gitlab/view/presenter/delegated.rb
index fd90f7c2bad..387ff0f5d43 100644
--- a/lib/gitlab/view/presenter/delegated.rb
+++ b/lib/gitlab/view/presenter/delegated.rb
@@ -8,9 +8,11 @@ module Gitlab
@subject = subject
attributes.each do |key, value|
- unless subject.respond_to?(key)
- define_singleton_method(key) { value }
+ if subject.respond_to?(key)
+ raise CannotOverrideMethodError.new("#{subject} already respond to #{key}!")
end
+
+ define_singleton_method(key) { value }
end
super(subject)