From 611912fe6870cac43fef9eea389f1229945f186a Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Mon, 7 Dec 2015 19:40:46 -0500 Subject: [PATCH] Store the demodulized reference filter name in data attribute --- .../markdown/filter/reference_gatherer_filter.rb | 2 +- lib/gitlab/markdown/reference_filter.rb | 6 +++--- .../gitlab/markdown/filter/redactor_filter_spec.rb | 14 +++++++------- .../filter/reference_gatherer_filter_spec.rb | 14 +++++++------- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/gitlab/markdown/filter/reference_gatherer_filter.rb b/lib/gitlab/markdown/filter/reference_gatherer_filter.rb index 00f983675e6..62f241b4967 100644 --- a/lib/gitlab/markdown/filter/reference_gatherer_filter.rb +++ b/lib/gitlab/markdown/filter/reference_gatherer_filter.rb @@ -31,7 +31,7 @@ module Gitlab return unless node.has_attribute?('data-reference-filter') reference_type = node.attr('data-reference-filter') - reference_filter = reference_type.constantize + reference_filter = Gitlab::Markdown.const_get(reference_type) return if context[:reference_filter] && reference_filter != context[:reference_filter] diff --git a/lib/gitlab/markdown/reference_filter.rb b/lib/gitlab/markdown/reference_filter.rb index 1b741d647d1..3b83b8bd8f8 100644 --- a/lib/gitlab/markdown/reference_filter.rb +++ b/lib/gitlab/markdown/reference_filter.rb @@ -57,14 +57,14 @@ module Gitlab # Examples: # # data_attribute(project: 1, issue: 2) - # # => "data-reference-filter=\"Gitlab::Markdown::SomeReferenceFilter\" data-project=\"1\" data-issue=\"2\"" + # # => "data-reference-filter=\"SomeReferenceFilter\" data-project=\"1\" data-issue=\"2\"" # # data_attribute(project: 3, merge_request: 4) - # # => "data-reference-filter=\"Gitlab::Markdown::SomeReferenceFilter\" data-project=\"3\" data-merge-request=\"4\"" + # # => "data-reference-filter=\"SomeReferenceFilter\" data-project=\"3\" data-merge-request=\"4\"" # # Returns a String def data_attribute(attributes = {}) - attributes[:reference_filter] = self.class.name + attributes[:reference_filter] = self.class.name.demodulize attributes.map { |key, value| %Q(data-#{key.to_s.dasherize}="#{value}") }.join(" ") end diff --git a/spec/lib/gitlab/markdown/filter/redactor_filter_spec.rb b/spec/lib/gitlab/markdown/filter/redactor_filter_spec.rb index c177d6950a0..7760a1c86fa 100644 --- a/spec/lib/gitlab/markdown/filter/redactor_filter_spec.rb +++ b/spec/lib/gitlab/markdown/filter/redactor_filter_spec.rb @@ -20,7 +20,7 @@ describe Gitlab::Markdown::RedactorFilter do user = create(:user) project = create(:empty_project) - link = reference_link(project: project.id, reference_filter: Gitlab::Markdown::ReferenceFilter.name) + link = reference_link(project: project.id, reference_filter: 'ReferenceFilter') doc = filter(link, current_user: user) expect(doc.css('a').length).to eq 0 @@ -31,14 +31,14 @@ describe Gitlab::Markdown::RedactorFilter do project = create(:empty_project) project.team << [user, :master] - link = reference_link(project: project.id, reference_filter: Gitlab::Markdown::ReferenceFilter.name) + link = reference_link(project: project.id, reference_filter: 'ReferenceFilter') doc = filter(link, current_user: user) expect(doc.css('a').length).to eq 1 end it 'handles invalid Project references' do - link = reference_link(project: 12345, reference_filter: Gitlab::Markdown::ReferenceFilter.name) + link = reference_link(project: 12345, reference_filter: 'ReferenceFilter') expect { filter(link) }.not_to raise_error end @@ -51,7 +51,7 @@ describe Gitlab::Markdown::RedactorFilter do user = create(:user) group = create(:group) - link = reference_link(group: group.id, reference_filter: Gitlab::Markdown::UserReferenceFilter.name) + link = reference_link(group: group.id, reference_filter: 'UserReferenceFilter') doc = filter(link, current_user: user) expect(doc.css('a').length).to eq 0 @@ -62,14 +62,14 @@ describe Gitlab::Markdown::RedactorFilter do group = create(:group) group.add_developer(user) - link = reference_link(group: group.id, reference_filter: Gitlab::Markdown::UserReferenceFilter.name) + link = reference_link(group: group.id, reference_filter: 'UserReferenceFilter') doc = filter(link, current_user: user) expect(doc.css('a').length).to eq 1 end it 'handles invalid Group references' do - link = reference_link(group: 12345, reference_filter: Gitlab::Markdown::UserReferenceFilter.name) + link = reference_link(group: 12345, reference_filter: 'UserReferenceFilter') expect { filter(link) }.not_to raise_error end @@ -79,7 +79,7 @@ describe Gitlab::Markdown::RedactorFilter do it 'allows any User reference' do user = create(:user) - link = reference_link(user: user.id, reference_filter: Gitlab::Markdown::UserReferenceFilter.name) + link = reference_link(user: user.id, reference_filter: 'UserReferenceFilter') doc = filter(link) expect(doc.css('a').length).to eq 1 diff --git a/spec/lib/gitlab/markdown/filter/reference_gatherer_filter_spec.rb b/spec/lib/gitlab/markdown/filter/reference_gatherer_filter_spec.rb index 0884f53abe5..caa9d5f36cc 100644 --- a/spec/lib/gitlab/markdown/filter/reference_gatherer_filter_spec.rb +++ b/spec/lib/gitlab/markdown/filter/reference_gatherer_filter_spec.rb @@ -16,7 +16,7 @@ describe Gitlab::Markdown::ReferenceGathererFilter do project = create(:empty_project) issue = create(:issue, project: project) - link = reference_link(project: project.id, issue: issue.id, reference_filter: Gitlab::Markdown::IssueReferenceFilter.name) + link = reference_link(project: project.id, issue: issue.id, reference_filter: 'IssueReferenceFilter') result = pipeline_result(link, current_user: user) expect(result[:references][:issue]).to be_empty @@ -28,14 +28,14 @@ describe Gitlab::Markdown::ReferenceGathererFilter do issue = create(:issue, project: project) project.team << [user, :master] - link = reference_link(project: project.id, issue: issue.id, reference_filter: Gitlab::Markdown::IssueReferenceFilter.name) + link = reference_link(project: project.id, issue: issue.id, reference_filter: 'IssueReferenceFilter') result = pipeline_result(link, current_user: user) expect(result[:references][:issue]).to eq([issue]) end it 'handles invalid Project references' do - link = reference_link(project: 12345, issue: 12345, reference_filter: Gitlab::Markdown::IssueReferenceFilter.name) + link = reference_link(project: 12345, issue: 12345, reference_filter: 'IssueReferenceFilter') expect { pipeline_result(link) }.not_to raise_error end @@ -49,7 +49,7 @@ describe Gitlab::Markdown::ReferenceGathererFilter do user = create(:user) group = create(:group) - link = reference_link(group: group.id, reference_filter: Gitlab::Markdown::UserReferenceFilter.name) + link = reference_link(group: group.id, reference_filter: 'UserReferenceFilter') result = pipeline_result(link, current_user: user) expect(result[:references][:user]).to be_empty @@ -60,14 +60,14 @@ describe Gitlab::Markdown::ReferenceGathererFilter do group = create(:group) group.add_developer(user) - link = reference_link(group: group.id, reference_filter: Gitlab::Markdown::UserReferenceFilter.name) + link = reference_link(group: group.id, reference_filter: 'UserReferenceFilter') result = pipeline_result(link, current_user: user) expect(result[:references][:user]).to eq([user]) end it 'handles invalid Group references' do - link = reference_link(group: 12345, reference_filter: Gitlab::Markdown::UserReferenceFilter.name) + link = reference_link(group: 12345, reference_filter: 'UserReferenceFilter') expect { pipeline_result(link) }.not_to raise_error end @@ -77,7 +77,7 @@ describe Gitlab::Markdown::ReferenceGathererFilter do it 'allows any User reference' do user = create(:user) - link = reference_link(user: user.id, reference_filter: Gitlab::Markdown::UserReferenceFilter.name) + link = reference_link(user: user.id, reference_filter: 'UserReferenceFilter') result = pipeline_result(link) expect(result[:references][:user]).to eq([user])