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 結構從一種形式轉換為另一種形式。主要用途是將較舊的結構轉換為最新版本的規範,但未來可能會根據需要實作其他轉換。(例如,移除所有自訂欄位或移除所有選用欄位。)
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.0」、「1.1」...「1.4」、「2」)。預設為 CPAN 元資料規格的最新版本。
轉換會依序進行每個版本。例如,版本 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 的網頁介面提交
在提交錯誤或要求時,請包含一個測試檔案或現有測試檔案的修補程式,以說明錯誤或所需功能。
David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
Adam Kennedy <adamk@cpan.org>
此軟體的著作權為 (c) 2010 David Golden、Ricardo Signes、Adam Kennedy 和協力廠商所有。
這是自由軟體;您可以在與 Perl 5 程式語言系統相同的條款下重新散布或修改它。