diff options
-rw-r--r-- | lib/gitlab/badge/build/metadata.rb | 14 | ||||
-rw-r--r-- | lib/gitlab/badge/coverage/metadata.rb | 14 | ||||
-rw-r--r-- | lib/gitlab/badge/metadata.rb | 36 | ||||
-rw-r--r-- | spec/lib/gitlab/badge/build/metadata_spec.rb | 6 | ||||
-rw-r--r-- | spec/lib/gitlab/badge/coverage/metadata_spec.rb | 6 |
5 files changed, 54 insertions, 22 deletions
diff --git a/lib/gitlab/badge/build/metadata.rb b/lib/gitlab/badge/build/metadata.rb index 52a10b19298..f87a7b7942e 100644 --- a/lib/gitlab/badge/build/metadata.rb +++ b/lib/gitlab/badge/build/metadata.rb @@ -4,22 +4,14 @@ module Gitlab ## # Class that describes build badge metadata # - class Metadata - include Gitlab::Application.routes.url_helpers - include ActionView::Helpers::AssetTagHelper - include ActionView::Helpers::UrlHelper - + class Metadata < Badge::Metadata def initialize(badge) @project = badge.project @ref = badge.ref end - def to_html - link_to(image_tag(image_url, alt: 'build status'), link_url) - end - - def to_markdown - "[](#{link_url})" + def title + 'build status' end def image_url diff --git a/lib/gitlab/badge/coverage/metadata.rb b/lib/gitlab/badge/coverage/metadata.rb index ae9e5e84051..53588185622 100644 --- a/lib/gitlab/badge/coverage/metadata.rb +++ b/lib/gitlab/badge/coverage/metadata.rb @@ -4,23 +4,15 @@ module Gitlab ## # Class that describes coverage badge metadata # - class Metadata - include Gitlab::Application.routes.url_helpers - include ActionView::Helpers::AssetTagHelper - include ActionView::Helpers::UrlHelper - + class Metadata < Badge::Metadata def initialize(badge) @project = badge.project @ref = badge.ref @job = badge.job end - def to_html - link_to(image_tag(image_url, alt: 'coverage report'), link_url) - end - - def to_markdown - "[](#{link_url})" + def title + 'coverage report' end def image_url diff --git a/lib/gitlab/badge/metadata.rb b/lib/gitlab/badge/metadata.rb new file mode 100644 index 00000000000..548f85b78bb --- /dev/null +++ b/lib/gitlab/badge/metadata.rb @@ -0,0 +1,36 @@ +module Gitlab + module Badge + ## + # Abstract class for badge metadata + # + class Metadata + include Gitlab::Application.routes.url_helpers + include ActionView::Helpers::AssetTagHelper + include ActionView::Helpers::UrlHelper + + def initialize(badge) + @badge = badge + end + + def to_html + link_to(image_tag(image_url, alt: title), link_url) + end + + def to_markdown + "[](#{link_url})" + end + + def title + raise NotImplementedError + end + + def image_url + raise NotImplementedError + end + + def link_url + raise NotImplementedError + end + end + end +end diff --git a/spec/lib/gitlab/badge/build/metadata_spec.rb b/spec/lib/gitlab/badge/build/metadata_spec.rb index d9354458707..d678e522721 100644 --- a/spec/lib/gitlab/badge/build/metadata_spec.rb +++ b/spec/lib/gitlab/badge/build/metadata_spec.rb @@ -7,6 +7,12 @@ describe Gitlab::Badge::Build::Metadata do it_behaves_like 'badge metadata' + describe '#title' do + it 'returns build status title' do + expect(metadata.title).to eq 'build status' + end + end + describe '#image_url' do it 'returns valid url' do expect(metadata.image_url).to include 'badges/feature/build.svg' diff --git a/spec/lib/gitlab/badge/coverage/metadata_spec.rb b/spec/lib/gitlab/badge/coverage/metadata_spec.rb index 995b1a329ba..74eaf7eaf8b 100644 --- a/spec/lib/gitlab/badge/coverage/metadata_spec.rb +++ b/spec/lib/gitlab/badge/coverage/metadata_spec.rb @@ -10,6 +10,12 @@ describe Gitlab::Badge::Coverage::Metadata do it_behaves_like 'badge metadata' + describe '#title' do + it 'returns coverage report title' do + expect(metadata.title).to eq 'coverage report' + end + end + describe '#image_url' do it 'returns valid url' do expect(metadata.image_url).to include 'badges/feature/coverage.svg' |