class Krane::TemplateSets

Constants

VALID_TEMPLATES

Public Class Methods

from_dirs_and_files(paths:, logger:) click to toggle source
# File lib/krane/template_sets.rb, line 86
def from_dirs_and_files(paths:, logger:)
  resource_templates = {}
  dir_paths, file_paths = paths.partition { |path| File.directory?(path) }

  # Directory paths
  dir_paths.each do |template_dir|
    resource_templates[template_dir] = Dir.foreach(template_dir).select do |filename|
      filename.end_with?(*VALID_TEMPLATES) || filename == EjsonSecretProvisioner::EJSON_SECRETS_FILE
    end
  end

  # Filename paths
  file_paths.each do |filename|
    dir_name = File.dirname(filename)
    resource_templates[dir_name] ||= []
    resource_templates[dir_name] << File.basename(filename) unless resource_templates[dir_name].include?(filename)
  end

  template_sets = []
  resource_templates.each do |template_dir, files|
    template_sets << TemplateSet.new(template_dir: template_dir, file_whitelist: files, logger: logger)
  end
  TemplateSets.new(template_sets: template_sets)
end
new(template_sets: []) click to toggle source
# File lib/krane/template_sets.rb, line 142
def initialize(template_sets: [])
  @template_sets = template_sets
end

Public Instance Methods

ejson_secrets_files() click to toggle source
# File lib/krane/template_sets.rb, line 132
def ejson_secrets_files
  @template_sets.map(&:ejson_secrets_file).compact
end
validate() click to toggle source
# File lib/krane/template_sets.rb, line 136
def validate
  @template_sets.flat_map(&:validate)
end
with_resource_definitions(render_erb: false, current_sha: nil, bindings: nil, raw: false) { |r_def| ... } click to toggle source
# File lib/krane/template_sets.rb, line 125
def with_resource_definitions(render_erb: false, current_sha: nil, bindings: nil, raw: false)
  with_resource_definitions_and_filename(render_erb: render_erb,
    current_sha: current_sha, bindings: bindings, raw: raw) do |r_def, _|
    yield r_def
  end
end
with_resource_definitions_and_filename(render_erb: false, current_sha: nil, bindings: nil, raw: false) { |r_def, filename| ... } click to toggle source
# File lib/krane/template_sets.rb, line 112
def with_resource_definitions_and_filename(render_erb: false, current_sha: nil, bindings: nil, raw: false)
  with_delayed_exceptions(@template_sets, Krane::InvalidTemplateError) do |template_set|
    template_set.with_resource_definitions_and_filename(
      render_erb: render_erb,
      current_sha: current_sha,
      bindings: bindings,
      raw: raw
    ) do |r_def, filename|
      yield r_def, filename
    end
  end
end