class Rails::API::Task

def api_main

def api_main
  component_root_dir("railties") + "/RDOC_MAIN.md"
end

def configure_rdoc_files

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?(api_dir) && !ENV["ALL"]
    last_generation = DateTime.rfc2822(File.open("#{api_dir}/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 configure_sdoc

def configure_sdoc
  self.title    = "Ruby on Rails API"
  self.rdoc_dir = api_dir
  options << "-m"  << api_main
  options << "-e"  << "UTF-8"
  options << "-f"  << "api"
  options << "-T"  << "rails"
end

def desc(description)

Hack, ignore the desc calls performed by the original initializer.
def desc(description)
  # no-op
end

def initialize(name)

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
    configure_sdoc
    configure_rdoc_files
    setup_horo_variables
  end
end

def setup_horo_variables # :nodoc:

:nodoc:
These variables are used by the sdoc template
def setup_horo_variables # :nodoc:
  ENV["HORO_PROJECT_NAME"]    = "Ruby on Rails"
  ENV["HORO_PROJECT_VERSION"] = rails_version
  ENV["HORO_BADGE_VERSION"]   = badge_version
  ENV["HORO_CANONICAL_URL"]   = canonical_url
end