diff options
author | Robert Speicher <rspeicher@gmail.com> | 2015-05-02 23:11:21 -0400 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2015-05-26 15:48:30 -0400 |
commit | c0faf91ff23815404a95cf4510b43dcf5e331c4f (patch) | |
tree | 81769f125569dd6ea012920544ada1e8666ba4e5 /app/models/issue.rb | |
parent | b06dc74d611192744d34acda944d7ed9e554342a (diff) | |
download | gitlab-ce-c0faf91ff23815404a95cf4510b43dcf5e331c4f.tar.gz |
Add `to_reference` for models that support references
Now there is a single source of information for which attribute a model
uses to be referenced, and its special character.
Diffstat (limited to 'app/models/issue.rb')
-rw-r--r-- | app/models/issue.rb | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/app/models/issue.rb b/app/models/issue.rb index 6e102051387..ff13cbca845 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -21,10 +21,11 @@ require 'carrierwave/orm/activerecord' require 'file_size_validator' class Issue < ActiveRecord::Base - include Issuable include InternalId - include Taskable + include Issuable + include Referable include Sortable + include Taskable ActsAsTaggableOn.strict_case_match = true @@ -49,14 +50,28 @@ class Issue < ActiveRecord::Base state :closed end + def self.reference_prefix + '#' + end + def hook_attrs attributes end + def to_reference(from_project = nil) + reference = "#{self.class.reference_prefix}#{iid}" + + if cross_project_reference?(from_project) + reference = project.to_reference + reference + end + + reference + end + # Mentionable overrides. def gfm_reference - "issue ##{iid}" + "issue #{to_reference}" end # Reset issue events cache |