2017-03-09 2 views
0

私たちは多くのRubyプロジェクトに含まれているローカルのRubyライブラリを持っています。これには、シェフスクリプトで使用するのに非常に便利な多くの設定情報が含まれています。これにより、すべての設定を1か所にまとめることができるので、データベースを変更するたびに複数の場所を作る必要はありません。コードをDRYにしておきます。つまり、このコードはルーフの機能であり、シェフのDSLではありません。シェフの共有Rubyの関数またはライブラリ

私はシェフにライブラリを引き出そうとしていましたが、非常に難しいと感じました。私は何らかのパターンに逆らっていると思う。

私は試して動作しませんでした。 - require_relative経由でRubyコードを追加します。 - Rubyコードを自分の料理本に追加してから、料理本をラップします。 - ローカルルビーの宝石を作成する(ルビー宝石や他のレポでは回収できない)

効いたこと: - コードをコピーして料理本に貼り付ける。 (ただし共有可能ではありません)

私の実際の質問は、このルビーコードライブラリを多くの料理本の中で共有する最良の方法は何ですか?最良の方法、実際にどうやってやるのか、正しい方向のポインタに応じて。

ありがとうございました。 myles。

答えて

0

私はHalite(免責事項:私のプロジェクト)を使って宝石を料理本に変換し、それを料理本としてアップロードします。その後、あなたはそれに依存することができ、シェフのコードでは普通のものと同じようなものを要求することができます。

0

料理本を作成し、料理本のライブラリフォルダにルビーコードをコピーすることができます。次に、料理名簿をランリストに入れるとすぐに、シェフが自動的にノードにロードされます。

Rubyコードを自分自身の料理ブックに追加してからラップしてみたとき、正確に何をしたのか、何がうまくいかなかったのかを教えてください。

0

私はRubyライブラリを作成しました。基本的には、opsworksのサーバのipを読み込みます。それが取得されると、それはどの環境にあるかを知り、ハッシュを設定します。このハッシュを使用して属性を設定します。このようにして、すべてのサーバー構成が1か所に格納されます。

私はコードを必要とするそれぞれの料理本に入れることができます。しかし、私はそれぞれの料理本にコードを複製する必要があります。私はコードを一箇所に置いて、各料理本にそれを含めたいと思っています。そうすれば、私はそれを修正しなければならないが、私はただ一つの場所でそれをしなければならない。

私はそれを宝石にしようとしましたが、運が必要ではありませんでした。
私はまた、ライブラリにルビーコード以外の何も書かれていない料理本を作成しました。私はそれから別の料理ブックを "依存するなど"を含むとライブラリ関数を実行しようとしましたが、私はそれを動作させることができませんでした。

私は正しい軌道に乗っているかもしれませんが、私はそれが機能する前に停止しました。

基本的に私が望むすべての料理本で使用できるシンプルなルビーコードライブラリを作成したいと思います。これを行う方法が必要ですが、私はいくつかの死んだ終わりに遭遇しました。私は壁に向かって頭を叩いていきます。最終的に、穴が開けます!

関連する問題