目錄

名稱

CPAN::Meta::Converter - 轉換 CPAN 發行版元資料結構

版本

版本 2.150010

概要

my $struct = decode_json_file('META.json');

my $cmc = CPAN::Meta::Converter->new( $struct );

my $new_struct = $cmc->convert( version => "2" );

說明

此模組將 CPAN Meta 結構從一種形式轉換為另一種形式。主要用途是將較舊的結構轉換為最新版本的規範,但未來可能會根據需要實作其他轉換。(例如,移除所有自訂欄位或移除所有選用欄位。)

方法

new

my $cmc = CPAN::Meta::Converter->new( $struct );

建構函數應傳遞有效的元資料結構,但無效的結構是可以接受的。如果未提供 meta-spec 版本,將假設為版本 1.0。

您可以在 $struct 之後提供 default_version 參數

my $cmc = CPAN::Meta::Converter->new( $struct, default_version => "1.4" );

這僅在轉換不包含 meta-spec 欄位的元資料片段時需要。

轉換

my $new_struct = $cmc->convert( version => "2" );

傳回一個新的雜湊參考,其中元資料已轉換為不同的形式。如果任何轉換/標準化仍導致無效結構,轉換 將會中止。

有效參數包括

轉換會依序進行每個版本。例如,版本 1.2 結構可能會轉換為 1.3,然後是 1.4,最後是版本 2。轉換程序會嘗試清除簡單錯誤並標準化資料。例如,如果 作者 被指定為純量,它將轉換為包含該項目的陣列參考。(將結構轉換為其自己的版本也會清除並標準化。)

當資料被清除並標準化時,如果可能,遺失或無效的欄位將會被替換為合理的預設值。這可能會造成遺失或不精確。例如,CPAN 上一些結構不良的 META.yml 檔案將先決條件模組列為鍵和值

requires => { 'Foo::Bar' => 'Bam::Baz' }

這些將會被拆分,並各自轉換為具有 0 最低版本的先決條件。

當一些強制性欄位遺失或無效時,轉換將嘗試提供合理的預設值,或將其填入「未知」值。例如,遺失或無法辨識的 授權 欄位將會導致「未知」的 授權 欄位。可能會取得「未知」的欄位包括

升級片段

my $new_struct = $cmc->upgrade_fragment;

傳回一個新的雜湊參考,其中元資料已轉換為 CPAN 元資料規格的最新版本。不會對結果進行驗證 -- 您必須在將片段合併到完整的元資料文件後進行驗證。

自版本 2.141170 起提供。

錯誤

請使用 CPAN 要求追蹤器回報任何錯誤或功能。錯誤可透過 http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Meta 的網頁介面提交

在提交錯誤或要求時,請包含一個測試檔案或現有測試檔案的修補程式,以說明錯誤或所需功能。

作者

著作權和授權

此軟體的著作權為 (c) 2010 David Golden、Ricardo Signes、Adam Kennedy 和協力廠商所有。

這是自由軟體;您可以在與 Perl 5 程式語言系統相同的條款下重新散布或修改它。