Как мне сгенерировать RDOC для (всех) Rails?
-
05-07-2019 - |
Вопрос
Я могу сделать
sudo gem rdoc activerecord --no-ri
и
sudo gem rdoc actionpack --no-ri
оба из которых дают мне хорошие документы.
Но
sudo gem rdoc rails --no-ri
мне это практически ничего не дает, так как сам Rails gem на самом деле является просто держателем для других.Как я могу сгенерировать эквивалент http://api.rubyonrails.org/?
Решение 2
Самое простое, что я нашел, это просто загрузить их с railsapi.com и распакуйте файл в /Library/Ruby/Gems/1.8/doc/rails-2.3.3/rdoc/
Другие советы
sudo gem rdoc --all --overwrite
Если вы установили rails с помощью rdoc (sudo gem устанавливает rails) Вы можете получить к нему доступ через
gem server
Ниже я пытаюсь немного разъяснить шаги по загрузке документов rails 3.1 локально на ваш компьютер в качестве эквивалента http://api.rubyonrails.org/
- Перейдите к проекту sdoc по адресу https://github.com/voloko/sdoc и получите проект (или просто сделайте gem install sdoc)
- Посетите проект rails по адресу https://github.com/rails/rails и git клонирует его на ваш локальный компьютер
- Перейдите в rails clone и запустите sdoc -N rails
- Это займет некоторое время.Когда это будет сделано, у вас появится новый каталог под названием doc
- Вы можете переместить каталог doc в любое удобное для вас место и открыть файл index.html в браузере.Обратите внимание, что для этого вам не нужен веб-сервер.
В качестве дополнительного примечания, похоже, что 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
RDocs должны быть расположены в каталоге doc / api.Вы можете использовать rake rails:freeze:edge
чтобы получить документацию для Edge Rails.
В качестве альтернативы вы можете загрузить документы с такого сайта, как Рельсы Мозга чтобы вместе с ним получить шаблон с возможностью поиска.
Если вы хотите, чтобы документы отображались в gem server
тогда самым простым может быть переустановка rails gem с опцией rdoc.
sudo gem install rails --rdoc
Запустите команду bundle exec rdoc
в командной строке.
Он сгенерирует всю документацию по вашему коду.
Из Файл Rakefile проекта Rails
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
Если вам нужно сгенерировать edge docs, вы можете выполнить что-то вроде этого
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