2

タイトルの通りRuby初心者です。

私のプロジェクトは、変更したい 2 つの既存の gem を使用しています。GitHub で gem をフォークし、モジュールとしてレポに配置すると、サブディレクトリとして表示されます。

私はこれを調査しようとしましたが、迷子になり続けています - ここでいくつかの基本的な概念/知識が欠けていると思います.

私の質問:

  1. 私はこれについて正しい/間違っていますか?
  2. 私の実際のプロジェクトにそれらの(フォークされた)gemのコードを含めることさえ可能ですか、それとも個別に更新して実際のgemとして使用する必要がありますかrequire(これは非常に面倒です)
  3. これらの宝石が私のプロジェクトの一部である場合、それらを適切に使用するにはどうすればよいrequireですか? そうでない場合、どうすればそれらにアクセス/使用できますか?

ありがとう!

ところで、UbuntuでRuby 1.9.2-p194を使用し、RubyMineをIDEとして使用します。

4

1 に答える 1

2
  1. おそらく間違っています。Rubyは非常に柔軟な言語であり、オープンクラスと呼ばれるものがあります。これは、実行時にクラスを開いて変更できることを意味します。外部ライブラリでこれを行うことは、モンキーパッチと呼ばれます。したがって、一貫性を保ちたいすべてのコードを複製する代わりに、クラスを変更して、必要なメソッドをオーバーライドすることができます。簡単な例:

    class Fixnum
      def is_multiple_of_three?
        self % 3 == 0
      end
    end
    

    ただし、必要な変更が本当に重要な場合は、gemをフォークするのが理にかなっています。

  2. bundler逸品をお勧めします。これGemfileにより、すべての依存関係を一覧表示するを作成できます。次のように、Gemのソースとしてgithubリポジトリを一覧表示できます。

    gem 'gem_name_here', :git => 'git://github.com/username_here/gem_name_here.git'

    次に、実行bundle installして依存関係をインストールします。

  3. bundlerを使用してgemをインストールすると、インストールした他のgemと同じように機能します。

于 2012-07-29T00:08:47.600 に答える