From 16c9abf1ee95551d130e8b8eb454c440ca4c2eb2 Mon Sep 17 00:00:00 2001
From: Douglas Barbosa Alexandre <dbalexandre@gmail.com>
Date: Thu, 14 Jul 2016 00:28:58 -0300
Subject: [PATCH] Use cattr_accessor instead duplicating code on NoteOnDiff
 concern

---
 app/models/concerns/mentionable.rb  | 8 ++++----
 app/models/concerns/note_on_diff.rb | 3 ---
 app/models/concerns/participable.rb | 7 +++++--
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/app/models/concerns/mentionable.rb b/app/models/concerns/mentionable.rb
index 8cac47246db..ec9e0f1b1d0 100644
--- a/app/models/concerns/mentionable.rb
+++ b/app/models/concerns/mentionable.rb
@@ -14,14 +14,14 @@ module Mentionable
       attr = attr.to_s
       mentionable_attrs << [attr, options]
     end
+  end
 
+  included do
     # Accessor for attributes marked mentionable.
-    def mentionable_attrs
-      @mentionable_attrs ||= []
+    cattr_accessor :mentionable_attrs, instance_accessor: false do
+      []
     end
-  end
 
-  included do
     if self < Participable
       participant -> (user, ext) { all_references(user, extractor: ext) }
     end
diff --git a/app/models/concerns/note_on_diff.rb b/app/models/concerns/note_on_diff.rb
index 7b6a28ccf3c..2785fbb21c9 100644
--- a/app/models/concerns/note_on_diff.rb
+++ b/app/models/concerns/note_on_diff.rb
@@ -4,9 +4,6 @@ module NoteOnDiff
   NUMBER_OF_TRUNCATED_DIFF_LINES = 16
 
   included do
-    attr_mentionable :note, pipeline: :note
-    participant :author
-
     delegate :blob, :highlighted_diff_lines, to: :diff_file, allow_nil: true
   end
 
diff --git a/app/models/concerns/participable.rb b/app/models/concerns/participable.rb
index 9822844357d..70740c76e43 100644
--- a/app/models/concerns/participable.rb
+++ b/app/models/concerns/participable.rb
@@ -41,9 +41,12 @@ module Participable
     def participant(attr)
       participant_attrs << attr
     end
+  end
 
-    def participant_attrs
-      @participant_attrs ||= []
+  included do
+    # Accessor for participant attributes.
+    cattr_accessor :participant_attrs, instance_accessor: false do
+      []
     end
   end
 
-- 
GitLab