1. ホーム
  2. ruby

[解決済み] Rubyの基本的なプロジェクトはどのように設定するのですか?

2022-10-23 20:34:20

質問

10~20のクラス/ファイルからなる小さなRubyプロジェクトを作りたいと思っています。私はいくつかのgemsを必要とし、私はテストフレームワークとしてRSpecを使用したいと考えています。

私は後でgemを作りたいかもしれませんが、それは確実ではありません。

プロジェクトの基本的な構造をセットアップする方法を示すハウツーやガイドはありますか?

私が持っている質問は、次のとおりです。

  • すべてのカスタム エラー/例外をどこに置けばよいですか。
  • lib、bin、src などのディレクトリの命名規則がありますか?
  • テストデータやドキュメントはどこに置けばいいのでしょうか?
  • プロジェクトでアクセスできるように、すべてのファイルをどこに保存すればよいですか。

私はゼロからすべてを行うことができることを知っていますが、いくつかの指導を希望します。コピーできるいくつかの良い逸品がありますが、何が本当に必要で、何を削除できるのか、確信が持てません。

私は http://gembundler.com/ を見ましたが、Bundlerをセットアップすると止まってしまいます。

どうすれば解決しますか?

には、まず最初に bundle gem コマンドと rspec --init .

~/code $ bundle gem my_lib
      create  my_lib/Gemfile
      create  my_lib/Rakefile
      create  my_lib/LICENSE.txt
      create  my_lib/README.md
      create  my_lib/.gitignore
      create  my_lib/my_lib.gemspec
      create  my_lib/lib/my_lib.rb
      create  my_lib/lib/my_lib/version.rb
Initializating git repo in /Users/john/code/my_lib
~/code $ cd my_lib/
~/code/my_lib $ git commit -m "Empty project"
~/code/my_lib $ rspec --init
The --configure option no longer needs any arguments, so true was ignored.
  create   spec/spec_helper.rb
  create   .rspec

  • にコードを記述します。 lib
  • スペック spec
  • テストデータまたはドキュメントが入る spec/fixtures/
  • すべてのrubyファイルを lib/my_lib.rb . 例外の定義もこのファイルで行うか、独自のファイルで行うか、お好みでどうぞ。
  • C のソースファイルは ext/my_lib
  • シェルスクリプトと実行可能ファイルは bin

迷ったら、他の宝石がどのようにレイアウトされているかを見ればいいのです。


さらに詳しい情報。

他の開発者が使いやすいように、あなたのgemspecにrspecを開発依存として追加してください。

  1. my_lib.gemspecを編集し、以下を追加します。 gem.add_development_dependency 'rspec'gem.add_development_dependency 'rake' を底部近くに配置します。
  2. 追加 Bundler.setuprequire 'my_lib' を spec/spec_helper.rb の先頭に追加して、spec を実行するときに gem の依存関係がロードされるようにします。
  3. 追加 require "rspec/core/rake_task"task :default => :spec をRakefileに追加することで rake を実行するとspecが実行されます。

最新作に取り組んでいる間に ガード・スペック を使用すると、時間と手間を省くことができます。 自動的に を実行し、スペックに問題がある場合は警告を発します。

~/code/my_lib $ git add spec/spec_helper.rb
~/code/my_lib $ git commit -am "Add RSpec"
~/code/my_lib $ vim my_lib.gemspec # add guard development dependency
~/code/my_lib $ bundle
~/code/my_lib $ bundle exec guard init
~/code/my_lib $ vim Guardfile # Remove the sections below the top one
~/code/my_lib $ git add Guardfile
~/code/my_lib $ git commit -am "Add Guard"

満足のいくものができたら、githubにプッシュしてください。

# create a github repository for your gem, then push it up
~/code/my_lib $ curl -u myusername https://api.github.com/user/repos -d '{"name":"my_lib"}' 
~/code/my_lib $ git remote add origin [email protected]:myusername/my_lib.git
~/code/my_lib $ git push

そして、Rubygems.orgでgemをリリースする準備ができたら、次のように実行します。 rake release を実行すると、手順が説明されます。

~/code/my_lib $ rake release

その他の参考文献