バンドル、ビルド、配布、実装に関して問題なく機能しているカスタムgemがあります。gemは、他のgemが派生するフレームワークのコアです。ほとんどの派生gemは同じ基本構造を持つためbin
、gemのパスにRubyスクリプトを含めます。このスクリプトを使用して、基本的にフォルダーからtemplate
ユーザーが独自のgemを開発する新しいフォルダーにファイルをコピーできます。
私が抱えている問題は、フォルダに、ファイル内に同じ名前のクラス/モジュールで名前がtemplate
付けられたgemspecファイル(例:)があり、がユーザーによって指定された名前に置き換えられることです。$name$.gemspec
module $Name$
$name$
残念ながら、bundle install
gemの最上位パスから実行すると、エラーが発生します。
There was a SyntaxError while evaluating $name$.gemspec:
C:/my_gem/template/$name$.gemspec:8: syntax error, unexpected tGVAR
gem.version = MyGem::$Name$::VERSION
次のいずれかを介してGemfileまたはパスを明示的に渡した場合でも、Bundlerが間違ったGemfileを使用しているようです。
bundle install --gemfile=Gemfile
bundle install --path=C:\my_gem
gemspec
また、Gemfileの行を無駄に更新しようとしました。
gemspec name: 'my_gem'
最後に、template
フォルダがに含まれていないことを確認しましmy_gem.gemspec
たが、それは問題ではないようです。
gem.files = Dir.glob("lib/**/*") + %w(LICENSE.txt README.md)
./template/$name$.gemspec
Bundlerが代わりに読み込もうとしている理由を誰かが知っています./my_gem.gemspec
か?