I can do
sudo gem rdoc activerecord --no-ri
and
sudo gem rdoc actionpack --no-ri
both of which give me good docs.
But
sudo gem rdoc rails --no-ri
gives me pretty much nothing, as the Rails gem itself is really just a holder for the others. How can I generate the equivalent of http://api.rubyonrails.org/?
sudo gem rdoc --all --overwrite
The easiest I found was to just download them from railsapi.com and unpack the file into /Library/Ruby/Gems/1.8/doc/rails-2.3.3/rdoc/
If you installed rails with the rdoc (sudo gem install rails) You can access it via
gem server
Below is my attempt to clarify the steps a bit on how to get the rails 3.1 docs downloaded locally to your machine as the equivalent of http://api.rubyonrails.org/
- Go to the sdoc project at https://github.com/voloko/sdoc and get the project (or just do gem install sdoc)
- Visit the rails project at https://github.com/rails/rails and git clone it to your local machine
- Go into the rails clone and run sdoc -N rails
- This will take a while. When it is done you will have a new directory called doc
- You can move the doc directory anywhere you like and open the index.html file in a browser. Note that you do not need a web server for this to work.
As a side note it looks like sdoc has officially become the docs for the Ruby on Rails API (see http://weblog.rubyonrails.org/2011/8/29/the-rails-api-switches-to-sdoc)
You can freeze Rails in an app and run rake doc:rails
to get the docs.
rails doc_project
cd doc_project
rake rails:freeze
rake doc:rails
The RDocs should be located in doc/api directory. You can use rake rails:freeze:edge
to get documentation for Edge Rails.
Alternatively you can download the docs from a site like Rails Brain to get a searchable template with it as well.
If you are wanting the docs to show up in gem server
then the easiest thing may be to re-install the rails gem with the rdoc option.
sudo gem install rails --rdoc
Run the command bundle exec rdoc
on command line.
It will generate all documentation of your code.
From the Rails project 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
If you need to generate edge docs, you can perform something like this
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
来源:https://stackoverflow.com/questions/1202060/how-do-i-generate-rdoc-for-all-of-rails