2011-01-11 70 views
3

我寫過這個有超過10,000個生成類的寶石。 安裝這個寶石時,需要永遠安裝ri和rdoc。如何在ruby安裝gem期間從rdoc和ri代中排除一些類?

我知道我可以通過將--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 

只包括RDoc的和裏產生,但仍寶石myclass.rb install命令嘗試生成的RDoc和裏我所有的* .RB文件。

任何幫助,將不勝感激。

+0

不幸的是:nodoc:all命令在這裏也沒有幫助 – Reza 2011-01-12 11:33:45

回答

3

Rake::RDocTask任務與rubygems無關。您的代碼將只生成HTML

 
% rake rdoc 

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

爲了限制RDoc的範圍在創業板安裝過程中,編輯規範的寶石:

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).*是必需的,因爲RubyGems的自動添加RDoc的lib路徑,我們需要

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

希望這會有所幫助。

+0

我會在稍後測試。謝謝 – Reza 2011-02-15 22:13:09