diff options
author | Gonçalo Silva <goncalossilva@gmail.com> | 2010-08-10 18:15:12 +0100 |
---|---|---|
committer | Gonçalo Silva <goncalossilva@gmail.com> | 2010-08-10 18:15:12 +0100 |
commit | 62658500049fbb7a5e7d75537dd6f6a374204207 (patch) | |
tree | 8892d8305ced43866068a6c1c66548e465e45b38 /Rakefile | |
parent | cd2bbed9846d84a1230a1b9e52843eedca17b28d (diff) | |
parent | e86cced311539932420f9cda49d736606d106c28 (diff) | |
download | rails-62658500049fbb7a5e7d75537dd6f6a374204207.tar.gz rails-62658500049fbb7a5e7d75537dd6f6a374204207.tar.bz2 rails-62658500049fbb7a5e7d75537dd6f6a374204207.zip |
Merge branch 'master' of http://github.com/rails/rails
Diffstat (limited to 'Rakefile')
-rw-r--r-- | Rakefile | 70 |
1 files changed, 43 insertions, 27 deletions
@@ -1,16 +1,41 @@ -gem 'rdoc', '= 2.2' +gem 'rdoc', '>= 2.5.9' require 'rdoc' require 'rake' -require 'rake/rdoctask' +require 'rdoc/task' require 'rake/gempackagetask' +# RDoc skips some files in the Rails tree due to its binary? predicate. This is a quick +# hack for edge docs, until we decide which is the correct way to address this issue. +# If not fixed in RDoc itself, via an option or something, we should probably move this +# to railties and use it also in doc:rails. +def hijack_rdoc! + require "rdoc/parser" + class << RDoc::Parser + def binary?(file) + s = File.read(file, 1024) or return false + + if s[0, 2] == Marshal.dump('')[0, 2] then + true + elsif file =~ /erb\.rb$/ then + false + elsif s.index("\x00") then # ORIGINAL is s.scan(/<%|%>/).length >= 4 || s.index("\x00") + true + elsif 0.respond_to? :fdiv then + s.count("^ -~\t\r\n").fdiv(s.size) > 0.3 + else # HACK 1.8.6 + (s.count("^ -~\t\r\n").to_f / s.size) > 0.3 + end + end + end +end + PROJECTS = %w(activesupport activemodel actionpack actionmailer activeresource activerecord railties) desc 'Run all tests by default' task :default => %w(test test:isolated) -%w(test test:isolated rdoc package gem).each do |task_name| +%w(test test:isolated package gem).each do |task_name| desc "Run #{task_name} task for all projects" task task_name do errors = [] @@ -62,59 +87,53 @@ task :install => :gem do end desc "Generate documentation for the Rails framework" -Rake::RDocTask.new do |rdoc| +RDoc::Task.new do |rdoc| + hijack_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.options << '--main' << 'railties/README' - - # Workaround: RDoc assumes that rdoc.template can be required, and that - # rdoc.template.upcase is a constant living in RDoc::Generator::HTML - # which holds the actual template class. - # - # We put 'doc/template' in the load path to be able to set the template - # to the string 'horo' and thus meet those RDoc's assumptions. - $:.unshift('doc/template') + rdoc.options << '-f' << 'horo' + rdoc.options << '-c' << 'utf-8' + rdoc.options << '-m' << 'README.rdoc' - rdoc.template = ENV['template'] ? "#{ENV['template']}.rb" : 'horo' + rdoc.rdoc_files.include('README.rdoc') rdoc.rdoc_files.include('railties/CHANGELOG') rdoc.rdoc_files.include('railties/MIT-LICENSE') - rdoc.rdoc_files.include('railties/README') + rdoc.rdoc_files.include('railties/README.rdoc') rdoc.rdoc_files.include('railties/lib/**/*.rb') rdoc.rdoc_files.exclude('railties/lib/rails/generators/**/templates/*') - rdoc.rdoc_files.include('activerecord/README') + rdoc.rdoc_files.include('activerecord/README.rdoc') 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/README.rdoc') 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/README.rdoc') rdoc.rdoc_files.include('actionpack/CHANGELOG') + rdoc.rdoc_files.include('actionpack/lib/abstract_controller/**/*.rb') rdoc.rdoc_files.include('actionpack/lib/action_controller/**/*.rb') rdoc.rdoc_files.include('actionpack/lib/action_dispatch/**/*.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/README.rdoc') 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/README.rdoc') rdoc.rdoc_files.include('activesupport/CHANGELOG') rdoc.rdoc_files.include('activesupport/lib/active_support/**/*.rb') rdoc.rdoc_files.exclude('activesupport/lib/active_support/vendor/*') - rdoc.rdoc_files.include('activemodel/README') + rdoc.rdoc_files.include('activemodel/README.rdoc') rdoc.rdoc_files.include('activemodel/CHANGELOG') rdoc.rdoc_files.include('activemodel/lib/active_model/**/*.rb') end @@ -129,9 +148,6 @@ desc "Publish API docs for Rails as a whole and for each component" task :pdoc => :rdoc do require 'rake/contrib/sshpublisher' Rake::SshDirPublisher.new("rails@api.rubyonrails.org", "public_html/api", "doc/rdoc").upload - PROJECTS.each do |project| - system %(cd #{project} && #{$0} pdoc) - end end task :update_versions do |