mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
b7dbfe1b4d
There are a lot of monkey patches inside the code base but there's no need to document external constants so let's remove them from the documentation Also, since there are monkey patches for some test cases classes, there were sometimes both documented and sneaked under the wrong section in the sidebar. Finally, for future references, the `active_support/vendor` folder has been originally ignored in https://git.io/vDqfA but no longer exists. [ci skip]
179 lines
4.1 KiB
Ruby
179 lines
4.1 KiB
Ruby
require "rdoc/task"
|
|
|
|
module Rails
|
|
module API
|
|
class Task < RDoc::Task
|
|
RDOC_FILES = {
|
|
"activesupport" => {
|
|
include: %w(
|
|
README.rdoc
|
|
lib/active_support/**/*.rb
|
|
)
|
|
},
|
|
|
|
"activerecord" => {
|
|
include: %w(
|
|
README.rdoc
|
|
lib/active_record/**/*.rb
|
|
)
|
|
},
|
|
|
|
"activemodel" => {
|
|
include: %w(
|
|
README.rdoc
|
|
lib/active_model/**/*.rb
|
|
)
|
|
},
|
|
|
|
"actionpack" => {
|
|
include: %w(
|
|
README.rdoc
|
|
lib/abstract_controller/**/*.rb
|
|
lib/action_controller/**/*.rb
|
|
lib/action_dispatch/**/*.rb
|
|
)
|
|
},
|
|
|
|
"actionview" => {
|
|
include: %w(
|
|
README.rdoc
|
|
lib/action_view/**/*.rb
|
|
),
|
|
exclude: "lib/action_view/vendor/*"
|
|
},
|
|
|
|
"actionmailer" => {
|
|
include: %w(
|
|
README.rdoc
|
|
lib/action_mailer/**/*.rb
|
|
)
|
|
},
|
|
|
|
"activejob" => {
|
|
include: %w(
|
|
README.md
|
|
lib/active_job/**/*.rb
|
|
)
|
|
},
|
|
|
|
"actioncable" => {
|
|
include: %w(
|
|
README.md
|
|
lib/action_cable/**/*.rb
|
|
)
|
|
},
|
|
|
|
"railties" => {
|
|
include: %w(
|
|
README.rdoc
|
|
lib/**/*.rb
|
|
),
|
|
exclude: %w(
|
|
lib/rails/generators/rails/**/templates/**/*.rb
|
|
lib/rails/test_unit/*
|
|
lib/rails/api/generator.rb
|
|
)
|
|
}
|
|
}
|
|
|
|
def initialize(name)
|
|
super
|
|
|
|
# Every time rake runs this task is instantiated as all the rest.
|
|
# Be lazy computing stuff to have as light impact as possible to
|
|
# the rest of tasks.
|
|
before_running_rdoc do
|
|
load_and_configure_sdoc
|
|
configure_rdoc_files
|
|
setup_horo_variables
|
|
end
|
|
end
|
|
|
|
# Hack, ignore the desc calls performed by the original initializer.
|
|
def desc(description)
|
|
# no-op
|
|
end
|
|
|
|
def load_and_configure_sdoc
|
|
require "sdoc"
|
|
|
|
self.title = "Ruby on Rails API"
|
|
self.rdoc_dir = api_dir
|
|
|
|
options << "-m" << api_main
|
|
options << "-e" << "UTF-8"
|
|
|
|
options << "-f" << "sdoc"
|
|
options << "-T" << "rails"
|
|
rescue LoadError
|
|
$stderr.puts %(Unable to load SDoc, please add\n\n gem 'sdoc', require: false\n\nto the Gemfile.)
|
|
exit 1
|
|
end
|
|
|
|
def configure_rdoc_files
|
|
rdoc_files.include(api_main)
|
|
|
|
RDOC_FILES.each do |component, cfg|
|
|
cdr = component_root_dir(component)
|
|
|
|
Array(cfg[:include]).each do |pattern|
|
|
rdoc_files.include("#{cdr}/#{pattern}")
|
|
end
|
|
|
|
Array(cfg[:exclude]).each do |pattern|
|
|
rdoc_files.exclude("#{cdr}/#{pattern}")
|
|
end
|
|
end
|
|
|
|
# Only generate documentation for files that have been
|
|
# changed since the API was generated.
|
|
if Dir.exist?("doc/rdoc") && !ENV["ALL"]
|
|
last_generation = DateTime.rfc2822(File.open("doc/rdoc/created.rid", &:readline))
|
|
|
|
rdoc_files.keep_if do |file|
|
|
File.mtime(file).to_datetime > last_generation
|
|
end
|
|
|
|
# Nothing to do
|
|
exit(0) if rdoc_files.empty?
|
|
end
|
|
end
|
|
|
|
def setup_horo_variables
|
|
ENV["HORO_PROJECT_NAME"] = "Ruby on Rails"
|
|
ENV["HORO_PROJECT_VERSION"] = rails_version
|
|
end
|
|
|
|
def api_main
|
|
component_root_dir("railties") + "/RDOC_MAIN.rdoc"
|
|
end
|
|
end
|
|
|
|
class RepoTask < Task
|
|
def load_and_configure_sdoc
|
|
super
|
|
options << "-g" # link to GitHub, SDoc flag
|
|
end
|
|
|
|
def component_root_dir(component)
|
|
component
|
|
end
|
|
|
|
def api_dir
|
|
"doc/rdoc"
|
|
end
|
|
end
|
|
|
|
class EdgeTask < RepoTask
|
|
def rails_version
|
|
"master@#{`git rev-parse HEAD`[0, 7]}"
|
|
end
|
|
end
|
|
|
|
class StableTask < RepoTask
|
|
def rails_version
|
|
File.read("RAILS_VERSION").strip
|
|
end
|
|
end
|
|
end
|
|
end
|