Class: RDocF95::Generator::CHM
- Inherits:
-
HTML
- Object
- HTML
- RDocF95::Generator::CHM
- Defined in:
- lib/rdoc-f95/generator/chm.rb
Defined Under Namespace
Modules: CHM
Constant Summary collapse
- HHC_PATH =
"c:/Program Files/HTML Help Workshop/hhc.exe"
Class Method Summary collapse
-
.for(options) ⇒ Object
Standard generator factory.
Instance Method Summary collapse
- #check_for_html_help_workshop ⇒ Object
-
#compile_project ⇒ Object
Invoke the windows help compiler to compiler the project.
-
#create_contents_and_index ⇒ Object
The contents is a list of all files and modules.
-
#create_help_project ⇒ Object
The project contains the project file, a table of contents and an index.
-
#create_project_file ⇒ Object
The project file links together all the various files that go to make up the help.
-
#generate(info) ⇒ Object
Generate the html as normal, then wrap it in a help project.
-
#initialize(*args) ⇒ CHM
constructor
A new instance of CHM.
Constructor Details
#initialize(*args) ⇒ CHM
Returns a new instance of CHM.
14 15 16 17 18 |
# File 'lib/rdoc-f95/generator/chm.rb', line 14 def initialize(*args) super @op_name = @options.op_name || "rdoc" check_for_html_help_workshop end |
Class Method Details
.for(options) ⇒ Object
Standard generator factory
10 11 12 |
# File 'lib/rdoc-f95/generator/chm.rb', line 10 def self.for() new() end |
Instance Method Details
#check_for_html_help_workshop ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rdoc-f95/generator/chm.rb', line 20 def check_for_html_help_workshop stat = File.stat(HHC_PATH) rescue $stderr << "\n.chm output generation requires that Microsoft's Html Help\n" << "Workshop is installed. RDoc looks for it in:\n\n " << HHC_PATH << "\n\nYou can download a copy for free from:\n\n" << " http://msdn.microsoft.com/library/default.asp?" << "url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp\n\n" end |
#compile_project ⇒ Object
Invoke the windows help compiler to compiler the project
108 109 110 |
# File 'lib/rdoc-f95/generator/chm.rb', line 108 def compile_project system(HHC_PATH, @project_name) end |
#create_contents_and_index ⇒ Object
The contents is a list of all files and modules. For each we include as sub-entries the list of methods they contain. As we build the contents we also build an index file
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/rdoc-f95/generator/chm.rb', line 75 def create_contents_and_index contents = [] index = [] (@files+@classes).sort.each do |entry| content_entry = { "c_name" => entry.name, "ref" => entry.path } index << { "name" => entry.name, "aref" => entry.path } internals = [] methods = entry.build_method_summary_list(entry.path) content_entry["methods"] = methods unless methods.empty? contents << content_entry index.concat methods end values = { "contents" => contents } template = RDocF95::TemplatePage.new @template::CONTENTS File.open("contents.hhc", "w") do |f| template.write_html_on(f, values) end values = { "index" => index } template = RDocF95::TemplatePage.new @template::CHM_INDEX File.open("index.hhk", "w") do |f| template.write_html_on(f, values) end end |
#create_help_project ⇒ Object
The project contains the project file, a table of contents and an index
44 45 46 47 48 |
# File 'lib/rdoc-f95/generator/chm.rb', line 44 def create_help_project create_project_file create_contents_and_index compile_project end |
#create_project_file ⇒ Object
The project file links together all the various files that go to make up the help.
54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/rdoc-f95/generator/chm.rb', line 54 def create_project_file template = RDocF95::TemplatePage.new @template::HPP_FILE values = { "title" => @options.title, "opname" => @op_name } files = [] @files.each do |f| files << { "html_file_name" => f.path } end values['all_html_files'] = files File.open(@project_name, "w") do |f| template.write_html_on(f, values) end end |
#generate(info) ⇒ Object
Generate the html as normal, then wrap it in a help project
35 36 37 38 39 |
# File 'lib/rdoc-f95/generator/chm.rb', line 35 def generate(info) super @project_name = @op_name + ".hhp" create_help_project end |