Ruby on rails 如何重命名或移动轨道';s README_FOR_应用程序
当我在Rails应用程序根目录中运行Ruby on rails 如何重命名或移动轨道';s README_FOR_应用程序,ruby-on-rails,ruby,rake,Ruby On Rails,Ruby,Rake,当我在Rails应用程序根目录中运行rake doc:app时,将使用/doc/README\u FOR_app作为主页生成API文档。我想向该文件添加一个.rdoc扩展名,以便在GitHub上正确地呈现它。更好的是,我想将其移动到应用程序根目录(/README.rdoc)。在我的Rakefile中,是否有办法通过修改包含的rake/rdoctask任务来实现这一点?是否在某个位置查找可以修改的主页文件名?还是我必须编写一个新的Rake任务 附加问题:Rails应用程序的两个独立文件/READM
rake doc:app
时,将使用/doc/README\u FOR_app
作为主页生成API文档。我想向该文件添加一个.rdoc
扩展名,以便在GitHub上正确地呈现它。更好的是,我想将其移动到应用程序根目录(/README.rdoc
)。在我的Rakefile
中,是否有办法通过修改包含的rake/rdoctask
任务来实现这一点?是否在某个位置查找可以修改的主页文件名?还是我必须编写一个新的Rake任务
附加问题:Rails应用程序的两个独立文件
/README
和/doc/README\u的逻辑是什么?为什么不只有一个呢?Rails rdoc任务位于/lib/tasks/documentation.rake
若要执行所需操作,请执行:app任务并对其进行更改,将其放入应用程序的/lib/tasks中的.rake文件中
#clear the doc:app task et al
Rake::Task["doc:app"].clear
Rake::Task["doc/app"].clear
Rake::Task["doc/app/index.html"].clear
namespace :doc do
desc "Generate documentation for the application. Set custom template with TEMPLATE=/path/to/rdoc/template.rb or title with TITLE=\"Custom Title\""
Rake::RDocTask.new("app") { |rdoc|
rdoc.rdoc_dir = 'doc/app'
rdoc.template = ENV['template'] if ENV['template']
rdoc.title = ENV['title'] || "Rails Application Documentation"
rdoc.options << '--line-numbers' << '--inline-source'
rdoc.options << '--charset' << 'utf-8'
rdoc.rdoc_files.include('app/**/*.rb')
rdoc.rdoc_files.include('lib/**/*.rb')
rdoc.rdoc_files.include('README')
rdoc.main = 'README'
}
end
#清除doc:app任务等
Rake::Task[“doc:app”]。清除
Rake::任务[“文档/应用”]。清除
Rake::Task[“doc/app/index.html”]。清除
名称空间:docdo
desc“为应用程序生成文档。使用template=/path/将自定义模板设置为/rdoc/template.rb或使用title=\“自定义标题”设置标题”
Rake::RDocTask.new(“app”){rdoc|
rdoc.rdoc_dir='doc/app'
rdoc.template=ENV['template']如果ENV['template']
rdoc.title=ENV['title']| |“Rails应用程序文档”
rdoc.options可执行您想要的操作:
创建新的Rails应用程序时,会创建应用程序的README\u
文件。该代码位于Rails-#.#.#\lib\Rails\u generator\generators\applications\APP\APP\APP\u generator.rb
中
要添加后缀并更改所有Rails应用程序的位置,可以将该方法修改为:
def create_documentation_file(m)
# was m.file "doc/README_FOR_APP", "doc/README_FOR_APP"
m.file "doc/README_FOR_APP", "README_FOR_APP.rdoc"
end
然后,您需要在rails-#.#.#.#\lib\tasks\documentation.Rake中修改Rake文档任务以包含此文件而不是旧文件:
Rake::RDocTask.new("app") { |rdoc|
...
rdoc.rdoc_files.include('README_FOR_APP.rdoc') # was 'doc/README_FOR_APP'
}
关于“应用程序的自述文件”和“自述文件”分开的逻辑:
自述应用程序
,顾名思义是
您的特定的Rails应用程序,它与
您将使用的类和方法
我写过
自述文件
是描述结构的所有Rails应用程序的常规文档
Rails应用程序和一些web服务器设置。它的级别高于应用程序的自述。
然而。。。
作为提示,我建议您保留这两个文件,不要重命名它们(不要忘记Rail在配置方面的约定)。任何Rails开发人员都希望这些文件存在,重命名它们可能会使事情变得更复杂
您的IDE也可能使用此约定。例如,我使用Netbeans,Rails项目视图已预先配置为显示某些文件。如果将README\u For_APP
文件移动到根目录,Netbeans将不会在项目视图中显示它,您必须使用文件视图或修改项目视图(不知道这是否可行)。如果您在本地应用程序文件夹中创建相同的任务,例如,lib/tasks/doc.rake
并定义相同的任务,如下所示:
namespace :doc do
task :app do
# some code that adds rdoc extension
end
end
然后,此任务将在rails的内置任务之后运行。因此,您不必干扰rails源代码,仍然可以完成您的目标。是的,但是如果我重新定义一个Rake任务,该块将被附加到现有任务中。我需要一种擦除现有任务或防止其加载的方法(在我的Rakefile
中注释掉require'rake/rdoctask'
是有效的,但是它也可以去掉我想要的其他任务)。对不起,我不太了解rake。除了不require
删除文件之外,还有什么方法可以清除任务吗?rake::task[].clear将清除与该任务及其先决条件关联的操作。此外,您要更改的任务未在rake/rdoctask中定义,它是由库定义的默认rake任务。