class Playgroundbook::GlossaryGenerator
Public Instance Methods
generate(parsed_chapters, chapter_names, glossary)
click to toggle source
# File lib/renderer/glossary_generator.rb, line 7 def generate(parsed_chapters, chapter_names, glossary) glossary_plist = { "Terms" => {} } glossary.each do |term, definition| glossary_plist["Terms"][term] = { "Definition" => definition } escaped_term = URI.escape(term) parsed_chapters.each_with_index do |chapter, i| pages = chapter[:page_contents] page_names = chapter[:page_names] chapter_name = URI.escape(chapter_names[i]) pages.each_with_index do |page, j| page_name = URI.escape(page_names[j]) next if page.scan("](glossary://#{escaped_term})").empty? glossary_plist["Terms"][term]["FirstUse"] = { "Title" => page_names[j], "PageReference" => "#{chapter_name}/#{page_name}" } break end # Break if we found the first use. break unless glossary_plist["Terms"][term]["FirstUse"].nil? end end File.open(glossary_file_name, "w") do |file| file.write(glossary_plist.to_plist) end end
glossary_file_name()
click to toggle source
# File lib/renderer/glossary_generator.rb, line 40 def glossary_file_name "#{ContentsDirectoryName}/#{ResourcesDirectoryName}/#{GlossaryFileName}" end