blob: bcdf73e0044d051c3a63356578e2a026bc191969 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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["title"] }
milestones = entries.map { |entry| entry[milestone_key_name] }.uniq
milestones = VersionSorter.rsort(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
|