module Enki::Redcarpenter

Public Instance Methods

compile_dir(src_dir:, dst_dir:) click to toggle source
# File lib/enki/redcarpenter.rb, line 55
def compile_dir(src_dir:, dst_dir:)
  Dir.glob("#{src_dir}/**/*.yml").each do |source_file|
    output_file = "#{dst_dir}/#{source_file[%r{#{src_dir}/(.*)\.yml}, 1]}.html"
    FileUtils.mkdir_p File.dirname(output_file)

    compile_file(source: source_file, output: output_file)
  end
end
compile_file(source:, output:) click to toggle source
# File lib/enki/redcarpenter.rb, line 30
def compile_file(source:, output:)
  @data = YAML.load_file(source)
  @markdown = ::Redcarpet::Markdown.new(
    EnkiRender,
    no_intra_emphasis: true,
    tables: true,
  )
  @codes = {
    "200" => "OK",
    "201" => "Created",
    "204" => "No Content",
    "400" => "Bad Request",
    "403" => "Forbidden",
    "404" => "Forbidden",
  }

  template_file = File.open(Enki.configuration.erb_template)

  template = ERB.new template_file.read

  File.open(output, 'w') do |file|
    file.puts template.result(binding)
  end
end