Class: Playgroundbook::PageWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/renderer/page_writer.rb

Instance Method Summary collapse

Constructor Details

#initialize(page_processor = PageProcessor.new, ui = Cork::Board.new) ⇒ PageWriter



6
7
8
9
# 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

Instance Method Details

#write_page(page_name, page_dir_name, imports, page_contents, chapter_info = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/renderer/page_writer.rb', line 11

def write_page(page_name, page_dir_name, imports, page_contents, 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
  end
end