Pregunta

¿Cómo puedo incluir un archivo de código rubí, como es, en RDoc?

Tengo un archivo example.rb que documenta cómo utilizar mi joya y me gustaría incluir eso como uno de los archivos como el README.rdoc y HISTORY.rdoc.

Ya he descubierto la manera de convertir el código fuente de rubí en HTML utilizando el Sintaxis joya pero no puede encontrar la manera de hacer RDoc incluye el archivo sin analizarlo.

Cuando le digo RDoc para incluir el archivo html que no aparece en la lista y si es falso a cabo mediante el uso de rdoc o txt como la extensión de archivo que no se muestra correctamente (el archivo es en realidad todavía html).

Tengo una solución que funciona es sólo increíblemente feo. Tiene que haber una mejor manera de hacer esto que es nativa de rdoc pero yo no lo veo.

Esto es lo que tengo en mi Rakefile:

# 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]
¿Fue útil?

Solución

En este momento no puedo dar una respuesta real pero estoy buscando en DCP mí mismo. Puede instalar el joya de las gemas de rubí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top