Skip to content

Commit cc24416

Browse files
committed
Extract the abstract base class of badge metadata
1 parent 7b840c8 commit cc24416

File tree

5 files changed

+54
-22
lines changed

5 files changed

+54
-22
lines changed

lib/gitlab/badge/build/metadata.rb

+3-11
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,14 @@ module Build
44
##
55
# Class that describes build badge metadata
66
#
7-
class Metadata
8-
include Gitlab::Application.routes.url_helpers
9-
include ActionView::Helpers::AssetTagHelper
10-
include ActionView::Helpers::UrlHelper
11-
7+
class Metadata < Badge::Metadata
128
def initialize(badge)
139
@project = badge.project
1410
@ref = badge.ref
1511
end
1612

17-
def to_html
18-
link_to(image_tag(image_url, alt: 'build status'), link_url)
19-
end
20-
21-
def to_markdown
22-
"[![build status](#{image_url})](#{link_url})"
13+
def title
14+
'build status'
2315
end
2416

2517
def image_url

lib/gitlab/badge/coverage/metadata.rb

+3-11
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,15 @@ module Coverage
44
##
55
# Class that describes coverage badge metadata
66
#
7-
class Metadata
8-
include Gitlab::Application.routes.url_helpers
9-
include ActionView::Helpers::AssetTagHelper
10-
include ActionView::Helpers::UrlHelper
11-
7+
class Metadata < Badge::Metadata
128
def initialize(badge)
139
@project = badge.project
1410
@ref = badge.ref
1511
@job = badge.job
1612
end
1713

18-
def to_html
19-
link_to(image_tag(image_url, alt: 'coverage report'), link_url)
20-
end
21-
22-
def to_markdown
23-
"[![coverage report](#{image_url})](#{link_url})"
14+
def title
15+
'coverage report'
2416
end
2517

2618
def image_url

lib/gitlab/badge/metadata.rb

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
module Gitlab
2+
module Badge
3+
##
4+
# Abstract class for badge metadata
5+
#
6+
class Metadata
7+
include Gitlab::Application.routes.url_helpers
8+
include ActionView::Helpers::AssetTagHelper
9+
include ActionView::Helpers::UrlHelper
10+
11+
def initialize(badge)
12+
@badge = badge
13+
end
14+
15+
def to_html
16+
link_to(image_tag(image_url, alt: title), link_url)
17+
end
18+
19+
def to_markdown
20+
"[![#{title}](#{image_url})](#{link_url})"
21+
end
22+
23+
def title
24+
raise NotImplementedError
25+
end
26+
27+
def image_url
28+
raise NotImplementedError
29+
end
30+
31+
def link_url
32+
raise NotImplementedError
33+
end
34+
end
35+
end
36+
end

spec/lib/gitlab/badge/build/metadata_spec.rb

+6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@
77

88
it_behaves_like 'badge metadata'
99

10+
describe '#title' do
11+
it 'returns build status title' do
12+
expect(metadata.title).to eq 'build status'
13+
end
14+
end
15+
1016
describe '#image_url' do
1117
it 'returns valid url' do
1218
expect(metadata.image_url).to include 'badges/feature/build.svg'

spec/lib/gitlab/badge/coverage/metadata_spec.rb

+6
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@
1010

1111
it_behaves_like 'badge metadata'
1212

13+
describe '#title' do
14+
it 'returns coverage report title' do
15+
expect(metadata.title).to eq 'coverage report'
16+
end
17+
end
18+
1319
describe '#image_url' do
1420
it 'returns valid url' do
1521
expect(metadata.image_url).to include 'badges/feature/coverage.svg'

0 commit comments

Comments
 (0)