diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-06-20 11:10:13 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-06-20 11:10:13 +0000 |
commit | 0ea3fcec397b69815975647f5e2aa5fe944a8486 (patch) | |
tree | 7979381b89d26011bcf9bdc989a40fcc2f1ed4ff /app/presenters/packages/pypi/simple_presenter_base.rb | |
parent | 72123183a20411a36d607d70b12d57c484394c8e (diff) | |
download | gitlab-ce-0ea3fcec397b69815975647f5e2aa5fe944a8486.tar.gz |
Add latest changes from gitlab-org/gitlab@15-1-stable-eev15.1.0-rc42
Diffstat (limited to 'app/presenters/packages/pypi/simple_presenter_base.rb')
-rw-r--r-- | app/presenters/packages/pypi/simple_presenter_base.rb | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/app/presenters/packages/pypi/simple_presenter_base.rb b/app/presenters/packages/pypi/simple_presenter_base.rb new file mode 100644 index 00000000000..a459319539c --- /dev/null +++ b/app/presenters/packages/pypi/simple_presenter_base.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +# Display package version data acording to PyPI +# Simple API: https://warehouse.pypa.io/api-reference/legacy/#simple-project-api +module Packages + module Pypi + class SimplePresenterBase + include API::Helpers::RelatedResourcesHelpers + + def initialize(packages, project_or_group) + @packages = packages + @project_or_group = project_or_group + end + + def body + <<-HTML + <!DOCTYPE html> + <html> + <head> + <title>Links for #{escape(body_name)}</title> + </head> + <body> + <h1>Links for #{escape(body_name)}</h1> + #{links} + </body> + </html> + HTML + end + + private + + def package_link(url, required_python, name) + "<a href=\"#{url}\" data-requires-python=\"#{escape(required_python)}\">#{name}</a>" + end + + def escape(str) + ERB::Util.html_escape(str) + end + + def project? + @project_or_group.is_a?(::Project) + end + + def group? + @project_or_group.is_a?(::Group) + end + + def available_packages + @packages.not_pending_destruction + end + end + end +end |