diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-01-20 09:16:11 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-01-20 09:16:11 +0000 |
commit | edaa33dee2ff2f7ea3fac488d41558eb5f86d68c (patch) | |
tree | 11f143effbfeba52329fb7afbd05e6e2a3790241 /tooling/docs | |
parent | d8a5691316400a0f7ec4f83832698f1988eb27c1 (diff) | |
download | gitlab-ce-edaa33dee2ff2f7ea3fac488d41558eb5f86d68c.tar.gz |
Add latest changes from gitlab-org/gitlab@14-7-stable-eev14.7.0-rc42
Diffstat (limited to 'tooling/docs')
-rw-r--r-- | tooling/docs/deprecation_handling.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tooling/docs/deprecation_handling.rb b/tooling/docs/deprecation_handling.rb new file mode 100644 index 00000000000..7dfd3e1101d --- /dev/null +++ b/tooling/docs/deprecation_handling.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true +require 'erb' + +module Docs + class DeprecationHandling + def initialize(type) + @type = type + @yaml_glob_path = Rails.root.join("data/#{type.pluralize}/**/*.yml") + @template_path = Rails.root.join("data/#{type.pluralize}/templates/_#{type}_template.md.erb") + @milestone_key_name = if type == "deprecation" + "announcement_milestone" + else + "removal_milestone" + end + end + + def render + source_file_paths = Rake::FileList.new(yaml_glob_path) do |fl| + fl.exclude(/example\.yml$/) + end + + entries = source_file_paths.flat_map do |file| + YAML.load_file(file) + end + entries = entries.sort_by { |d| d["name"] } + + milestones = entries.map { |entry| entry[milestone_key_name] }.uniq + milestones = VersionSorter.sort(milestones) + + load_template(template_path) + .result_with_hash(entries: entries, milestones: milestones) + end + + private + + def load_template(filename) + ERB.new(File.read(filename), trim_mode: '-') + end + + attr_reader :type, :yaml_glob_path, :milestone_key_name, :template_path + end +end |