問題タブ [gemspecs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - Gem バージョンが必要な場合に「OR」を実行する方法
現在、Rails > 3.1 で Rails 3.x の特定のバージョンを必要とする Gemspec があります。
~> 3.1
ORを要求するようにこのステートメントを更新しようとしています~> 4.0.0
。私はすでに試しました:
~> 3.1, ~> 4.0.0
~> 3.1 OR ~> 4.0.0
~> 3.1 || ~> 4.0.0
~> 3.1 ~> 4.0.0
どれも機能していません。現在の RubyGems のバージョンでそれは可能ですか?
今のところ私は > 3.1 を使用していますが、本当の問題はそれが可能かどうかです。
ruby - 宝石の定義:JRubyのextconf.rbを無視する
rbenvを介してJRubyに正常にインストールされるC拡張機能とJava拡張機能を備えたgemがありますが、RVMを介してJRubyにインストールできません。gemspecとプロジェクトはGithubにあります。プラットフォームがJavaの場合、extconf.rbファイルと* .cファイルを除いて、gemspecにファイルを明示的にリストしようとしましたが、それでもRVMのJRubyにgemをインストールできません。
でインストールしgem install pg_array_parser --pre
てみて、マスターの現在のgemspecでインストールが失敗することを確認できます。この時点で他に何を試すことができるかわかりません。
ruby - gemspec に競合を追加する方法はありますか
のようなgemを作っていugly_fork_of_foo
ます。システムに、ugly_fork_of_foo が foo と競合し、両方を同時にインストールできないことを伝えるために、gemspec に何かを追加できますか?
ruby-on-rails - Gemspec: 自動要求する必要のない依存関係を指定するにはどうすればよいですか?
特定の依存関係を持つ gem を作成しましたが、それらのいくつかは、別のプロジェクトにバンドルするときに暗黙的に必要としないようにしたいと考えています。例として uuidtools gem があります。これは、それを使用するファイルでのみ必要とします。
:require => false は予想外なので、この構文は false ですが、これは多かれ少なかれ私がやりたいことを要約しています。誰かがこれについて私を助けることができますか?
ruby-on-rails - Rails: Gemspec が無効です。このgemspecを修正してください
github から gem をインストールすると、次のエラーが表示されます。
ジェムスペックは次のとおりです。
そのエラーを修正するにはどうすればよいですか?
ruby-on-rails - .gemspecファイルでローカルgemの依存関係をrailsプラグイン/エンジンに追加する方法
私はこのように試しました:</ p>
にgemを追加するようなものですgemfile,
が、機能せず、次のエラーが発生します。
ruby - bundlerが間違ったgemspecファイルを使用しているのはなぜですか?
バンドル、ビルド、配布、実装に関して問題なく機能しているカスタムgemがあります。gemは、他のgemが派生するフレームワークのコアです。ほとんどの派生gemは同じ基本構造を持つためbin
、gemのパスにRubyスクリプトを含めます。このスクリプトを使用して、基本的にフォルダーからtemplate
ユーザーが独自のgemを開発する新しいフォルダーにファイルをコピーできます。
私が抱えている問題は、フォルダに、ファイル内に同じ名前のクラス/モジュールで名前がtemplate
付けられたgemspecファイル(例:)があり、がユーザーによって指定された名前に置き換えられることです。$name$.gemspec
module $Name$
$name$
残念ながら、bundle install
gemの最上位パスから実行すると、エラーが発生します。
次のいずれかを介してGemfileまたはパスを明示的に渡した場合でも、Bundlerが間違ったGemfileを使用しているようです。
gemspec
また、Gemfileの行を無駄に更新しようとしました。
最後に、template
フォルダがに含まれていないことを確認しましmy_gem.gemspec
たが、それは問題ではないようです。
./template/$name$.gemspec
Bundlerが代わりに読み込もうとしている理由を誰かが知っています./my_gem.gemspec
か?
rubygems - 別のgemを構築するときにプライベートgemサーバーでホストされているgemを使用する方法
プライベートジェム(たとえば、社内でホストされている)を作成した場合、そのジェムを、作成している別のジェム(アプリではありません!)で再利用したいのですが、どうすればよいですか?
依存関係をどこに置き、新しい(すでに構築されている)プライベートにホストされているgemを見つける方法を新しいgemに指示しますか?
bundler - 一方が他方に依存している宝石を開発する方法
gem B に依存している gem A があります。両方の gem は私自身のもので、現在プライベート開発中です。これらを rubygems に公開する予定はありません。
Rails アプリで gem A を使用したいと考えています。
問題は、Rails アプリの bundle install を実行しようとすると、このエラーが発生することです。
gem 'A (>= 0) ruby' が必要とする gem 'B (>= 0) ruby' がどのソースにも見つかりませんでした。
私が持っているGemfileの私のRailsアプリで
私が持っているgem Aのgemspecで
AのGemfileで、Bの場所を明示的に設定します
Railsアプリを実行しようとすると、上記の構成が機能していないようです。
ただし、gem の各テスト スイートを実行すると、問題なくパスします。
問題は、Railsアプリを実行し、バンドラーが依存関係Aをロードすると、Aのgemspecのみを見て、gemfileを完全に無視することだと思います。これはおそらく意図されたものです。では、この開発段階でプライベート gem を公開することを約束せずにコードを機能させるにはどうすればよいでしょうか。
ruby-on-rails - gem 仕様を行います。name は gem 定数名と同じでなければなりませんか?
tl;dr
より大きなアプリケーションの一部をマウント可能なエンジンとして分割しようとしています。エンジンはさまざまなフレーバーで存在し、それぞれが独自の gem に含まれています。エンジン定数名と異なる宝石名を取得できません。
詳細
抽出された部分には、登録、認証、およびセッション処理のロジックが含まれています。このアプリケーションは、製品を使用する最終顧客に関するさまざまな要件と規制を持つ世界のさまざまな地域のクライアントによって使用されています。これにより、規制地域ごとにこれらのニーズに対応する個別のモジュールを作成するようになりました。それらは現在 lib ディレクトリにあり、構成に応じてさまざまな実装がロードされます。
エンジンの目的は、適切なエンジンをマウントし、routes ファイルが関連するすべての呼び出しをエンジンにルーティングすることです。
このような登録モジュールがいくつかあるため、バリアント用にいくつかの gem を維持する必要があります。gem の名前が異なる (auth_A、auth_B など) ようにしようとしていますが、含まれているエンジンの定数名は Auth::Engine と同じです。
そうすれば、Gemfile に正しい gem を含めることができ、実行中のバージョンに関係なくルーティング先のエンドポイントが常に同じであるため、残りはそのまま機能します。
問題
私が遭遇した問題は、gem に 1 つの名前を付け、エンジン定数を別の名前にすることができないということです...
新しいエンジン名の認証を生成すると、それをメイン アプリにマウントしても問題なく動作します。次に、gem 名と格納フォルダーを auth_a に変更し、ホスト アプリの Gemfile を更新すると、機能しなくなります。正常にバンドルできますが、ホスト アプリを起動しようとすると、エンジンのマウントに関連付けられているときに失敗し、Auth:: と不平を言います。エンジンは未定義の定数です。
私の、わずかに編集された、gemspec は次のようになります。
生成された足場から変更したのはs.name = "auth_a"
. ホスト アプリの Gemfile からの関連する行: gem 'auth_a', path: "../auth_a"
...
ソースツリー全体を調べて、宝石名から名前を推測する場所を見つけようとしましたが、それがわかりません。何が欠けているのかわからず、宝石仕様のドキュメントもこれにはあまり役に立ちませんでした...宝石名が宝石の定数名にバインドされているとは思いませんでしたが、多分私は違う?オーバーライドできますか?それとも、他に何か不足していますか?