Skip to content
Snippets Groups Projects
Commit 65ba4da9 authored by Grzegorz Bizon's avatar Grzegorz Bizon
Browse files

Add support for keyword arguments in label reference method

parent 1fa7671f
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -66,16 +66,13 @@ class Label < ActiveRecord::Base
#
# format - Symbol format to use (default: :id, optional: :name)
#
# Note that its argument differs from other objects implementing Referable. If
# a non-Symbol argument is given (such as a Project), it will default to :id.
#
# Examples:
#
# Label.first.to_reference # => "~1"
# Label.first.to_reference(:name) # => "~\"bug\""
# Label.first.to_reference # => "~1"
# Label.first.to_reference(format: :name) # => "~\"bug\""
#
# Returns a String
def to_reference(format = :id)
def to_reference(_from_project = nil, format: :id)
if format == :name && !name.include?('"')
%(#{self.class.reference_prefix}"#{name}")
else
Loading
Loading
Loading
Loading
@@ -66,7 +66,7 @@ class SystemNoteService
def self.change_label(noteable, project, author, added_labels, removed_labels)
labels_count = added_labels.count + removed_labels.count
 
references = ->(label) { label.to_reference(:id) }
references = ->(label) { label.to_reference(format: :id) }
added_labels = added_labels.map(&references).join(' ')
removed_labels = removed_labels.map(&references).join(' ')
 
Loading
Loading
Loading
Loading
@@ -209,7 +209,7 @@ References should be parseable even inside _<%= merge_request.to_reference %>_ e
 
- Label by ID: <%= simple_label.to_reference %>
- Label by name: <%= Label.reference_prefix %><%= simple_label.name %>
- Label by name in quotes: <%= label.to_reference(:name) %>
- Label by name in quotes: <%= label.to_reference(format: :name) %>
- Ignored in code: `<%= simple_label.to_reference %>`
- Ignored in links: [Link to <%= simple_label.to_reference %>](#label-link)
- Link to label by reference: [Label](<%= label.to_reference %>)
Loading
Loading
Loading
Loading
@@ -111,7 +111,7 @@ describe Banzai::Filter::LabelReferenceFilter, lib: true do
 
context 'String-based multi-word references in quotes' do
let(:label) { create(:label, name: 'gfm references', project: project) }
let(:reference) { label.to_reference(:name) }
let(:reference) { label.to_reference(format: :name) }
 
it 'links to a valid reference' do
doc = reference_filter("See #{reference}")
Loading
Loading
Loading
Loading
@@ -65,12 +65,12 @@ describe Label, models: true do
 
context 'using name' do
it 'returns a String reference to the object' do
expect(label.to_reference(:name)).to eq %(~"#{label.name}")
expect(label.to_reference(format: :name)).to eq %(~"#{label.name}")
end
 
it 'uses id when name contains double quote' do
label = create(:label, name: %q{"irony"})
expect(label.to_reference(:name)).to eq "~#{label.id}"
expect(label.to_reference(format: :name)).to eq "~#{label.id}"
end
end
end
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment