Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何重命名或移动轨道';s README_FOR_应用程序_Ruby On Rails_Ruby_Rake - Fatal编程技术网

Ruby on rails 如何重命名或移动轨道';s README_FOR_应用程序

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

当我在Rails应用程序根目录中运行
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任务。