diff options
Diffstat (limited to 'lib/gitlab/ci/badge/metadata.rb')
-rw-r--r-- | lib/gitlab/ci/badge/metadata.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/gitlab/ci/badge/metadata.rb b/lib/gitlab/ci/badge/metadata.rb new file mode 100644 index 00000000000..eec9fedfaa9 --- /dev/null +++ b/lib/gitlab/ci/badge/metadata.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +module Gitlab::Ci + module Badge + ## + # Abstract class for badge metadata + # + class Metadata + include Gitlab::Routing + 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 + "[![#{title}](#{image_url})](#{link_url})" + end + + def to_asciidoc + "image:#{image_url}[link=\"#{link_url}\",title=\"#{title}\"]" + end + + def title + raise NotImplementedError + end + + def image_url + raise NotImplementedError + end + + def link_url + raise NotImplementedError + end + end + end +end |