如何为(所有)Rails生成RDOC?

我可以

sudo gem rdoc activerecord --no-ri 

 sudo gem rdoc actionpack --no-ri 

这两个都给了我很好的文档。

 sudo gem rdoc rails --no-ri 

因为Railsgem本身只是其他人的持有者,所以几乎没有给我任何东西。 如何生成相应的http://api.rubyonrails.org/ ?

 sudo gem rdoc --all --overwrite 

我发现最简单的方法是从railsapi.com下载它们并将文件解压缩到/Library/Ruby/Gems/1.8/doc/rails-2.3.3/rdoc/

如果您使用rdoc安装rails(sudo gem install rails)您可以通过它访问它

 gem server 

下面是我尝试澄清有关如何将rails 3.1文档本地下载到您的机器上的步骤,相当于http://api.rubyonrails.org/

  1. 转到https://github.com/voloko/sdoc上的sdoc项目获取项目(或者只是做gem install sdoc)
  2. 访问https://github.com/rails/rails上的rails项目,然后将其克隆到本地计算机
  3. 进入rails clone并运行sdoc -N rails
  4. 这需要一段时间。 完成后,您将拥有一个名为doc的新目录
  5. 您可以将doc目录移动到任何您喜欢的位置,并在浏览器中打开index.html文件。 请注意,您无需使用Web服务器即可运行。

作为旁注,看起来sdoc正式成为Ruby on Rails API的文档(参见http://weblog.rubyonrails.org/2011/8/29/the-rails-api-switches-to-sdoc )

您可以在应用程序中冻结Rails并运行rake doc:rails来获取文档。

 rails doc_project cd doc_project rake rails:freeze rake doc:rails 

RDoc应位于doc / api目录中。 您可以使用rake rails:freeze:edge来获取Edge Rails的文档。

或者,您也可以从像Rails Brain这样的网站下载文档,以获取可搜索的模板。

如果您希望文档显示在gem server那么最简单的方法可能是使用rdoc选项重新安装rails gem。

 sudo gem install rails --rdoc 

在命令行上运行命令bundle exec rdoc

它将生成代码的所有文档。

来自Rails项目Rakefile

 desc "Generate documentation for the Rails framework" Rake::RDocTask.new do |rdoc| rdoc.rdoc_dir = 'doc/rdoc' rdoc.title = "Ruby on Rails Documentation" rdoc.options << '--line-numbers' << '--inline-source' rdoc.options << '-A cattr_accessor=object' rdoc.options << '--charset' << 'utf-8' rdoc.template = ENV['template'] ? "#{ENV['template']}.rb" : './doc/template/horo' rdoc.rdoc_files.include('railties/CHANGELOG') rdoc.rdoc_files.include('railties/MIT-LICENSE') rdoc.rdoc_files.include('railties/README') rdoc.rdoc_files.include('railties/lib/{*.rb,commands/*.rb,rails/*.rb,rails_generator/*.rb}') rdoc.rdoc_files.include('activerecord/README') rdoc.rdoc_files.include('activerecord/CHANGELOG') rdoc.rdoc_files.include('activerecord/lib/active_record/**/*.rb') rdoc.rdoc_files.exclude('activerecord/lib/active_record/vendor/*') rdoc.rdoc_files.include('activeresource/README') rdoc.rdoc_files.include('activeresource/CHANGELOG') rdoc.rdoc_files.include('activeresource/lib/active_resource.rb') rdoc.rdoc_files.include('activeresource/lib/active_resource/*') rdoc.rdoc_files.include('actionpack/README') rdoc.rdoc_files.include('actionpack/CHANGELOG') rdoc.rdoc_files.include('actionpack/lib/action_controller/**/*.rb') rdoc.rdoc_files.include('actionpack/lib/action_view/**/*.rb') rdoc.rdoc_files.exclude('actionpack/lib/action_controller/vendor/*') rdoc.rdoc_files.include('actionmailer/README') rdoc.rdoc_files.include('actionmailer/CHANGELOG') rdoc.rdoc_files.include('actionmailer/lib/action_mailer/base.rb') rdoc.rdoc_files.exclude('actionmailer/lib/action_mailer/vendor/*') rdoc.rdoc_files.include('activesupport/README') rdoc.rdoc_files.include('activesupport/CHANGELOG') rdoc.rdoc_files.include('activesupport/lib/active_support/**/*.rb') rdoc.rdoc_files.exclude('activesupport/lib/active_support/vendor/*') end # Enhance rdoc task to copy referenced images also task :rdoc do FileUtils.mkdir_p "doc/rdoc/files/examples/" FileUtils.copy "activerecord/examples/associations.png", "doc/rdoc/files/examples/associations.png" end 

如果您需要生成边缘文档,则可以执行类似的操作

 git clone git://github.com/rails/rails.git ~/rails # or if you have repo, just checkout interested branch cd ~ ruby ~/rails/railties/bin/rails docapp cd docapp ln -s ~/rails vendor/rails rake doc:rerails rake doc:guides 
 $ rake rails:freeze:gems $ rake doc:rails $ rake rails:unfreeze $ sudo mv doc/api/* /Library/Ruby/Gems/1.8/doc/rails-2.3.5/rdoc $ gem server