diff options
Diffstat (limited to 'tooling/deprecations/docs.rb')
-rw-r--r-- | tooling/deprecations/docs.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tooling/deprecations/docs.rb b/tooling/deprecations/docs.rb new file mode 100644 index 00000000000..adc3e0edb10 --- /dev/null +++ b/tooling/deprecations/docs.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true +require 'erb' + +module Deprecations + module Docs + module_function + + def path + Rails.root.join("doc/update/deprecations.md") + end + + def render + deprecations_yaml_glob = Rails.root.join("data/deprecations/**/*.yml") + + source_files = Rake::FileList.new(deprecations_yaml_glob) do |fl| + fl.exclude(/example\.yml$/) + end + + deprecations = source_files.flat_map do |file| + YAML.load_file(file) + end + + deprecations = VersionSorter.rsort(deprecations) { |d| d["removal_milestone"] } + + milestones = deprecations.map { |d| d["removal_milestone"] }.uniq + + template = Rails.root.join("data/deprecations/templates/_deprecation_template.md.erb") + + load_template(template) + .result_with_hash(deprecations: deprecations, milestones: milestones) + end + + def load_template(filename) + ERB.new(File.read(filename), trim_mode: '-') + end + end +end |