summaryrefslogtreecommitdiff
path: root/lib/rdoc/generators/chm_generator.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-07 01:36:33 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-07 01:36:33 +0000
commitb543ed3ac8089e439e57ad5f667e35871882bd07 (patch)
tree8a9655143d6d7047ad06fcc42a6a48a0f6b2e752 /lib/rdoc/generators/chm_generator.rb
parentb0f13cfebec316491909e312608834c87792ca9f (diff)
Collapse namespaces and refactor requires in RDoc
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rdoc/generators/chm_generator.rb')
-rw-r--r--lib/rdoc/generators/chm_generator.rb172
1 files changed, 84 insertions, 88 deletions
diff --git a/lib/rdoc/generators/chm_generator.rb b/lib/rdoc/generators/chm_generator.rb
index 354a444689..e951b40496 100644
--- a/lib/rdoc/generators/chm_generator.rb
+++ b/lib/rdoc/generators/chm_generator.rb
@@ -1,118 +1,114 @@
require 'rdoc/generators/html_generator'
-module Generators
+class Generators::CHMGenerator < Generators::HTMLGenerator
- class CHMGenerator < HTMLGenerator
+ HHC_PATH = "c:/Program Files/HTML Help Workshop/hhc.exe"
- HHC_PATH = "c:/Program Files/HTML Help Workshop/hhc.exe"
+ ##
+ # Standard generator factory
- ##
- # Standard generator factory
-
- def CHMGenerator.for(options)
- CHMGenerator.new(options)
- end
-
- def initialize(*args)
- super
- @op_name = @options.op_name || "rdoc"
- check_for_html_help_workshop
- end
-
- 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"
-
- exit 99
- end
+ def self.for(options)
+ new(options)
+ end
- ##
- # Generate the html as normal, then wrap it in a help project
+ def initialize(*args)
+ super
+ @op_name = @options.op_name || "rdoc"
+ check_for_html_help_workshop
+ end
- def generate(info)
- super
- @project_name = @op_name + ".hhp"
- create_help_project
- end
+ 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"
+
+ exit 99
+ end
- ##
- # The project contains the project file, a table of contents and an index
+ ##
+ # Generate the html as normal, then wrap it in a help project
- def create_help_project
- create_project_file
- create_contents_and_index
- compile_project
- end
+ def generate(info)
+ super
+ @project_name = @op_name + ".hhp"
+ create_help_project
+ end
- ##
- # The project file links together all the various
- # files that go to make up the help.
+ ##
+ # The project contains the project file, a table of contents and an index
- def create_project_file
- template = TemplatePage.new(RDoc::Page::HPP_FILE)
- values = { "title" => @options.title, "opname" => @op_name }
- files = []
- @files.each do |f|
- files << { "html_file_name" => f.path }
- end
+ def create_help_project
+ create_project_file
+ create_contents_and_index
+ compile_project
+ end
- values['all_html_files'] = files
+ ##
+ # The project file links together all the various
+ # files that go to make up the help.
- File.open(@project_name, "w") do |f|
- template.write_html_on(f, values)
- end
+ def create_project_file
+ template = TemplatePage.new(RDoc::Page::HPP_FILE)
+ values = { "title" => @options.title, "opname" => @op_name }
+ files = []
+ @files.each do |f|
+ files << { "html_file_name" => f.path }
end
- ##
- # 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
+ values['all_html_files'] = files
- def create_contents_and_index
- contents = []
- index = []
+ File.open(@project_name, "w") do |f|
+ template.write_html_on(f, values)
+ end
+ end
- (@files+@classes).sort.each do |entry|
- content_entry = { "c_name" => entry.name, "ref" => entry.path }
- index << { "name" => entry.name, "aref" => entry.path }
+ ##
+ # 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
- internals = []
+ def create_contents_and_index
+ contents = []
+ index = []
- methods = entry.build_method_summary_list(entry.path)
+ (@files+@classes).sort.each do |entry|
+ content_entry = { "c_name" => entry.name, "ref" => entry.path }
+ index << { "name" => entry.name, "aref" => entry.path }
- content_entry["methods"] = methods unless methods.empty?
- contents << content_entry
- index.concat methods
- end
+ internals = []
- values = { "contents" => contents }
- template = TemplatePage.new(RDoc::Page::CONTENTS)
- File.open("contents.hhc", "w") do |f|
- template.write_html_on(f, values)
- end
+ methods = entry.build_method_summary_list(entry.path)
- values = { "index" => index }
- template = TemplatePage.new(RDoc::Page::CHM_INDEX)
- File.open("index.hhk", "w") do |f|
- template.write_html_on(f, values)
- end
+ content_entry["methods"] = methods unless methods.empty?
+ contents << content_entry
+ index.concat methods
end
- ##
- # Invoke the windows help compiler to compiler the project
+ values = { "contents" => contents }
+ template = TemplatePage.new(RDoc::Page::CONTENTS)
+ File.open("contents.hhc", "w") do |f|
+ template.write_html_on(f, values)
+ end
- def compile_project
- system(HHC_PATH, @project_name)
+ values = { "index" => index }
+ template = TemplatePage.new(RDoc::Page::CHM_INDEX)
+ File.open("index.hhk", "w") do |f|
+ template.write_html_on(f, values)
end
+ end
+
+ ##
+ # Invoke the windows help compiler to compiler the project
+ def compile_project
+ system(HHC_PATH, @project_name)
end
end