2012-01-14 11 views
3

まず、私はレールを使用していません。これはバニラルビーアプリケーションです。私はpackaging a CLI ruby application as a GEMについて読んだ。Ruby CLIアプリケーションの推奨レイアウト

私の質問は、これはルビーの方法だろうと思いますか?このレイアウトはクラスの自動ロードに適していますか?

私はPSR-0スタイル(例のセクションを参照)に従うアプリケーションレイアウトに慣れているPHPのバックグラウンドから来ています。

+1

このプログラムの大きさはどれくらいですか?小規模のユーティリティは通常1つのファイルですが、大きなプログラムは '/ bin'、'/lib'、時には '/ ext'に分割されます。クラスをオートロードすることはスタイルが崩れてしまい、正当な理由がなければやってはいけないことです。あなたが必要とするクラスを「必要とする」だけです。 – Linuxios

+0

また、gemはライブラリであり、コマンドラインスクリプトは、ライブラリの管理(データベースライブラリのデータベースジェネレータスクリプトなど)と関連がある場合にのみインクルードする必要があります。これが何らかのエンドユーザーアプリケーションである場合、宝石は間違ったものです。 – Linuxios

+0

アプリケーションは単一のファイルよりも大きくなります。私は静的ページに動的にページを作成するのではなく、自分のブログを公開する予定です。純粋にパフォーマンスのために、最小限のリソースでVPSを実行します。オートローディングが流行しないのはなぜですか?どんな正当化? 'autoload'を使うのはスレッドセーフではありませんが、私はスレッドを使う予定はありません。アドバイスをいただきありがとうございます。 GEMレイアウトをクリアに操る。 –

答えて

1

その資料に記載されてはい、Rubyのコマンドラインアプリケーションを構築して配布する方法は、多かれ少なかれです:

  • binを - exeファイルはここに
  • lib/your_app.rbを行く - lib/your_app
  • 下のすべてのファイルが必要です
  • lib/your_app/whatever.rb - コマンドラインアプリケーションをビルドするためのモジュールとファイル
  • your_app.gemspec - gemspec; Rakefile
  • binファイルがあることをあなたが言及してください - 開発
  • testを管理する - うん、それはlib内部クラスとモジュールにあなたのアプリを壊すために完全にOKです

をテストします。 RubyGemsを配布することで、コマンドラインアプリはユーザのパスに入り、libのすべてにアクセスできます。

RubyGemsは、コマンドラインアプリケーションの配布を一番サポートしています。それは単に図書館だけではありません。

関連する問題