簡體   English   中英

如何在ruby中安裝gem時從rdoc和ri生成中排除某些類?

[英]How to exclude some classes from rdoc and ri generation during a gem installation in ruby?

我寫過這個有超過10,000個生成類的gem。 在安裝這個gem時,需要永遠安裝ri和rdoc。

我知道我可以通過將--no-ri和--no-rdoc傳遞給gem install命令來禁用ri和rdoc安裝,但我需要做的是以某種方式在gem構建過程中指定一個rb文件列表然后排除其余的部分。

我希望gem install命令僅為這些文件自動生成ri和rdoc。

我試過了

Rake::RDocTask.new do |rdoc|
  files =['README.rdoc', 'LICENSE', 'lib/myclass.rb']
  rdoc.rdoc_files.add(files)
  rdoc.main = "README.rdoc" # page to start on
  rdoc.title = "mobilesrepo Docs"
  rdoc.rdoc_dir = 'doc/rdoc' # rdoc output folder
  rdoc.options << '--line-numbers'
end

僅包含myclass.rb用於rdoc和ri生成但仍然gem install命令嘗試為我的所有* .rb文件生成rdoc和ri。

任何幫助,將不勝感激。

Rake::RDocTask任務與rubygems無關。 你的代碼只會生成html

% rake rdoc

doc / rdoc項目目錄中的命令。

要在gem安裝過程中限制rdoc的范圍,請編輯gem的規范:

require 'rake/gempackagetask'
spec = Gem::Specification.new {|i|
  ...
  i.rdoc_options += ['-m', 'README.rdoc', '-x', 'lib/(?!myclass.rb).*',
                     'lib/myclass.rb', 'LICENSE', 'README.rdoc']
  i.extra_rdoc_files = []
  ...
}

Rake::GemPackageTask.new(spec).define

奇怪的正則表達式lib/(?!myclass.rb).* /(?!myclass.rb)。*是必需的,因為rubygems會自動為rdoc添加lib路徑,我們需要

  1. 排除它( -x選項);
  2. 允許lib/myclass.rb文件存活。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM