mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
8ff310aef4
* rails is now a metagem (gem install rails works as it does now) * railties includes the glue layer, so you can easily declare dependencies on railties, actionpack, and actionmailer and not get ActiveRecord's rake tasks, initializers, etc.
101 lines
3.9 KiB
Ruby
101 lines
3.9 KiB
Ruby
require 'rake'
|
|
require 'rake/rdoctask'
|
|
require 'rake/gempackagetask'
|
|
|
|
env = %(PKG_BUILD="#{ENV['PKG_BUILD']}") if ENV['PKG_BUILD']
|
|
|
|
PROJECTS = %w(activesupport activemodel actionpack actionmailer activeresource activerecord railties)
|
|
|
|
Dir["#{File.dirname(__FILE__)}/*/lib/*/version.rb"].each do |version_path|
|
|
require version_path
|
|
end
|
|
|
|
desc 'Run all tests by default'
|
|
task :default => %w(test test:isolated)
|
|
|
|
%w(test test:isolated rdoc pgem package release gem gemspec).each do |task_name|
|
|
desc "Run #{task_name} task for all projects"
|
|
task task_name do
|
|
errors = []
|
|
PROJECTS.each do |project|
|
|
system(%(cd #{project} && #{env} #{$0} #{task_name})) || errors << project
|
|
end
|
|
fail("Errors in #{errors.join(', ')}") unless errors.empty?
|
|
end
|
|
end
|
|
|
|
spec = eval(File.read('rails.gemspec'))
|
|
|
|
Rake::GemPackageTask.new(spec) do |pkg|
|
|
pkg.gem_spec = spec
|
|
end
|
|
|
|
task :install => :gem do
|
|
system %(cd arel && gem build arel.gemspec && gem install arel-0.2.pre.gem --no-ri --no-rdoc --ignore-dependencies)
|
|
system %(cd rack && rake gem VERSION=1.0.2.pre && gem install rack-1.0.2.pre.gem --no-ri --no-rdoc --ignore-dependencies)
|
|
(PROJECTS - ["railties"]).each do |project|
|
|
puts "INSTALLING #{project}"
|
|
system("gem install #{project}/pkg/#{project}-#{ActionPack::VERSION::STRING}.gem --no-ri --no-rdoc")
|
|
end
|
|
system("gem install railties/pkg/railties-#{ActionPack::VERSION::STRING}.gem --no-ri --no-rdoc")
|
|
system("gem install pkg/rails-#{ActionPack::VERSION::STRING}.gem --no-ri --no-rdoc")
|
|
end
|
|
|
|
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,generators/*.rb}')
|
|
rdoc.rdoc_files.exclude('railties/lib/vendor/*')
|
|
|
|
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
|
|
|
|
desc "Publish API docs for Rails as a whole and for each component"
|
|
task :pdoc => :rdoc do
|
|
require 'rake/contrib/sshpublisher'
|
|
Rake::SshDirPublisher.new("wrath.rubyonrails.org", "public_html/api", "doc/rdoc").upload
|
|
PROJECTS.each do |project|
|
|
system %(cd #{project} && #{env} #{$0} pdoc)
|
|
end
|
|
end
|