Class: Kettle::Jem::Appraisals::AppraisalsGenerator
- Inherits:
-
Object
- Object
- Kettle::Jem::Appraisals::AppraisalsGenerator
- Defined in:
- lib/kettle/jem/appraisals/appraisals_generator.rb,
sig/kettle/jem/appraisals.rbs
Overview
Generates the Appraisals file content from the computed matrix.
Each appraisal entry uses eval_gemfile to compose its modular gemfiles
(tier1, optional tier2, and x_std_libs).
Class Method Summary collapse
- .appraisal_eval_path(path) ⇒ Object
- .effective_appraisal_name(entry) ⇒ Object
-
.generate(matrix) ⇒ String
Generates the full
Appraisalsfile content as a String.
Class Method Details
.appraisal_eval_path(path) ⇒ Object
56 57 58 |
# File 'lib/kettle/jem/appraisals/appraisals_generator.rb', line 56 def appraisal_eval_path(path) path.to_s.delete_prefix("gemfiles/") end |
.effective_appraisal_name(entry) ⇒ Object
60 61 62 |
# File 'lib/kettle/jem/appraisals/appraisals_generator.rb', line 60 def effective_appraisal_name(entry) entry[:appraisal_name] || entry[:name] end |
.generate(matrix) ⇒ String
Generates the full Appraisals file content as a String.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/kettle/jem/appraisals/appraisals_generator.rb', line 29 def generate(matrix) lines = [ "# frozen_string_literal: true", "", "# Generated by kettle-jem-appraisals", "# Do not edit directly — re-run `kettle-jem-appraisals --resolve` to regenerate.", "" ] matrix.each do |entry| lines << "appraise #{effective_appraisal_name(entry).inspect} do" lines << " eval_gemfile #{appraisal_eval_path(entry[:tier1_gemfile]).inspect}" if entry[:tier1_gemfile] lines << " eval_gemfile #{appraisal_eval_path(entry[:tier2_gemfile]).inspect}" if entry[:tier2_gemfile] Array(entry[:extra_gemfiles]).each do |path| lines << " eval_gemfile #{appraisal_eval_path(path).inspect}" end if entry[:x_std_libs_gemfile] lines << " eval_gemfile #{appraisal_eval_path(entry[:x_std_libs_gemfile]).inspect}" end lines << "end" lines << "" end lines.pop while lines.last == "" "#{lines.join("\n")}\n" end |