2013-07-17 14 views
12

私たちはperl開発用にMinillaまたはDist :: Millaを使用することを考えます。依存関係の宣言はcpanfileで行います。私は、何がどのように宣言されるのかについての正確な定義を見つけることを期待しました。しかしcpanfileフォーマットの定義はどこにありますか?

  • perldoc cpanfile: プリンシパル使用状況のみを表示します。 「参照」セクションは役に立ちません。

  • perldoc Module :: CPANfile:cpanfileと同じです。

  • はperldoc cpanfile-FAQ:正確な構文またはそれへのリンクの説明なし、唯一

身近DSL構文

これは、新しいファイルの種類ですが、フォーマットと構文はまったく新しいものではありません。 宣言できるメタデータは、正確には、 CPANメタ仕様の「前提条件」のサブセットです。

構文は、Module :: Installから多くを借りています。 Module :: Installは という名前で、名前、作成者、 などのモジュールメタデータを簡単に宣言するのに最適です。 cpanfile形式は依存関係を単に別のファイルに展開することです。つまり、ほとんどの開発者は構文に詳しい、 です。

は誰もが知っていますの説明構文/形式ですか?

+2

本当にありません。宮川で叫ぶ。 :) – hobbs

+1

@hobbs:私は叫びたくありません。世界は完璧ではないし、Perlとその世界も完璧ではない。私はちょうどドキュメンテーションを見つけることに驚いた。 – katastrophos

答えて

6

Module::CPANFileperldoc cpanfileperldoc cpanfile-faqがインストールされました。

POD cpanfileのための状態:

[the] cpanfile specification (this document) is based on Ruby's 
Gemfile http://gembundler.com/man/gemfile.5.html specification. 

cpanfileマニュアルページ内のリンクが壊れています。これは、を指している必要があります:私はそれを理解したようhttp://bundler.io/v1.3/man/gemfile.5.html

cpanfilecpanfileModule::Install DSLの構文で「後方互換性」に設計されており、「CPAN ::メタ:: PREREQSに変換」であるとCPAN::Meta Spec v.2など

に触発されました多少の「メタフォーマット」であり、Module::Installと互換性があり、主に自己文書化するTIMTOWTDIアプローチ(miyagawa's blog describing cpanfile参照)の範囲に適合します。たとえば、METAファイルのディレクトリ内にmymeta-cpanfileを実行すると、cpanfileが作成されます。前提条件を記述するスクリプトをCPAN::Meta::Prereqsから、次に$file->save('cpanfile');からcpanfileと書くことができます。チュートリアルのDist::Millaについては

、(PODDist::Millaに含まれている参照)宮川は は、「手動で[A]新しいcpanfileを構築することを決定した場合、フォーマットはModule::Installの要件DSLにほとんど互換性がある」と指摘します。このチュートリアルでは、簡単な例も示します。

私は配布のドキュメントでcpanfile仕様/フォーマットの状態と使用例を明確にするためmiyagawaを依頼する公正だと思います。それと、いくつかの例があなたのような質問に答えるでしょう。彼はすでにこの作業をほとんど手がけています。ただ一つの場所にあるわけではありません。

+2

「ベース」とは何を意味しますか?同じ構文、同じセマンティクス、拡張perl機能...?私はPERLの正確なフォーマット/定義を読んでみたい、あるいは私がルビーの宝石のスペックを読んでみたいです;-)! Btw。リンクが壊れています。 – katastrophos

+1

@katastrophos:しかし、あなたは壊れたリンクの問題を書いていない - まあ、私はそれをやった。 –

+0

@ SlavenRezic:そうです。このリンクを使用すると、「ページが見つかりません」というサイトのhttp://bundler.io/man/gemfile.5.htmlにリダイレクトされます。あなたはメインページに行き、そこから検索を開始しなければなりません(私はそうしませんでした)。 – katastrophos

関連する問題