class Playgroundbook::PageWriter

Public Class Methods

new(page_processor = PageProcessor.new, ui = Cork::Board.new) click to toggle source
# File lib/renderer/page_writer.rb, line 6
def initialize(page_processor = PageProcessor.new, ui = Cork::Board.new)
  @page_processor = page_processor
  @ui = ui
end

Public Instance Methods

copy_page_resources(resource_names) click to toggle source
# File lib/renderer/page_writer.rb, line 46
def copy_page_resources(resource_names)
  Dir.mkdir(SharedResourcesDirectoryName) unless Dir.exist?(SharedResourcesDirectoryName)

  resource_names.each do |resource|
    FileUtils.cp("../../../../../../#{resource}", SharedResourcesDirectoryName)
  end
end
copy_page_sources(source_names) click to toggle source
# File lib/renderer/page_writer.rb, line 38
def copy_page_sources(source_names)
  Dir.mkdir(SharedSourcesDirectoryName) unless Dir.exist?(SharedSourcesDirectoryName)

  source_names.each do |source|
    FileUtils.cp("../../../../../../#{source}", SharedSourcesDirectoryName)
  end
end
write_page(page_name, page_dir_name, imports, page_contents, page_sources, page_resources, chapter_info={}) click to toggle source
# File lib/renderer/page_writer.rb, line 11
def write_page(page_name, page_dir_name, imports, page_contents, page_sources, page_resources, chapter_info={})
  Dir.mkdir(page_dir_name) unless Dir.exist?(page_dir_name)
  contents_with_import = "//#-hidden-code\n"
  contents_with_import += imports.map { |i| "import #{i}" }.join("\n") + "\n"
  contents_with_import += "//#-end-hidden-code\n"
  contents_with_import += @page_processor.strip_extraneous_newlines(page_contents)

  Dir.chdir(page_dir_name) do
    File.open(ContentsSwiftFileName, "w") do |file|
      file.write(contents_with_import)
    end

    File.open(MANIFEST_FILE_NAME, "w") do |file|
      file.write({
        "Name" => page_name,
        "LiveViewMode" => chapter_info.has_key?("live_view_mode") ? chapter_info["live_view_mode"] : "HiddenByDefault",
        "LiveViewEdgeToEdge" => chapter_info.has_key?("edge_to_edge_live_view") ? chapter_info["edge_to_edge_live_view"] : true,
        "Version" => "1.0",
        "ContentVersion" => "1.0"
      }.to_plist)
    end

    copy_page_sources(page_sources)
    copy_page_resources(page_resources)
  end
end