Frage

Wie füge ich eine Ruby-Code-Datei, wie es ist, in RDoc?

Ich habe eine example.rb Datei, dass Dokumente, wie mein Juwel verwenden, und ich würde das als eine der Dateien einschließen möchten, wie die README.rdoc und HISTORY.rdoc.

habe ich schon herausgefunden, wie der Ruby-Quellcode in HTML zu konvertieren, die unter Verwendung von Syntax gem aber ich nicht herausfinden kann, wie man ohne Parsen es RDoc umfassen die Datei zu machen.

Wenn ich RDoc sagen die HTML-Datei schließen es nicht aufgeführt ist, und wenn ich fake it out durch rdoc oder txt als Dateierweiterung verwenden es nicht richtig angezeigt wird (die Datei ist eigentlich noch html).

Ich habe eine Lösung erhält, die es ist einfach unglaublich hässlich funktioniert. Es hat doch ein besserer Weg, dies zu tun, die zu rdoc nativen, aber ich sehe es nicht.

Hier ist was ich in meinem Rakefile haben:

# Build rdocs
require 'rake/rdoctask'
require 'syntax/convertors/html'
rdoc_dir = 'rdoc'
# This is rdoc1 but it doesn't work unless you DON'T wrap it in a task
# Generate html files from example ruby files
convertor = Syntax::Convertors::HTML.for_syntax "ruby"
replacement_key = "REPLACE_THIS_TEXT_WITH_PROPER_HTML"
# Create dummy files
Dir.glob('examples/*.rb').each do |file|
  File.open("#{file}.txt", "w") do |dummy_file|
    dummy_file.write(replacement_key)
  end
end

# Call the rdoc task
Rake::RDocTask.new(:rdoc2) do |rdoc|
  rdoc.rdoc_dir = rdoc_dir
  rdoc.title = "pickled_optparse #{version}"
  rdoc.rdoc_files.include('README*')
  rdoc.rdoc_files.include('HISTORY*')
  rdoc.rdoc_files.include('examples/*.txt')
  rdoc.rdoc_files.include('lib/**/*.rb')
end

task :rdoc3 do
  # Now use a hammer to replace the dummy text with the
  # html we want to use in our ruby example code file.
  html_header = File.read('rake_reqs/html_header.html')
  Dir.glob('examples/*.rb').each do |file|
    html_ruby = convertor.convert(File.read(file))
    rdoc_file = "#{rdoc_dir}/examples/#{File.basename(file,".rb")}_rb_txt.html"
    fixed_html = File.read(rdoc_file).gsub!(replacement_key, "#{html_header}#{html_ruby}")
    File.open(rdoc_file, "w") {|f| f.write(fixed_html)}
    File.delete("#{file}.txt")
  end
end

task :rdoc => [:rdoc2, :rdoc3]
War es hilfreich?

Lösung

Leider kann ich Ihnen nicht eine tatsächliche Antwort geben, aber ich bin auf der Suche unter SDoC mir. Sie können die gem von Rubin Edelsteine ??installieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top