[英]Ruby CLI tool does not respect the Gemfile - How can I use (remote vs local) GEM's from CLI tool
我創建了一個 CLI 工具,它使用了我自己的一些Klueless - RubyGems項目。
在我的本地機器上,我經常在 GemFile gem "name_of_gem", path: "../name_of_gem"
中設置path
設置以進行調試。
當我使用這種技術時,我可以在我的其他 GEM 中使用代碼,並且可以從我當前正在開發的 GEM 中立即訪問它。
此技術適用於 RSpec,但不適用於./exe/my_gemname
文件。
我不確定我需要在./exe/my_gemname
中包含什么才能使其使用 GemFile。
使用我的開發文件夾
KUtil : 0.0.28 : ~/dev/kgems/k_util/lib/k_util/version.rb
KLog : 0.0.34 : ~/dev/kgems/k_log/lib/k_log/version.rb
KType : 0.0.10 : ~/dev/kgems/k_type/lib/k_type/version.rb
KDecor : 0.0.8 : ~/dev/kgems/k_decor/lib/k_decor/version.rb
KDoc : 0.0.37 : ~/dev/kgems/k_doc/lib/k_doc/version.rb
KConfig : 0.0.10 : ~/dev/kgems/k_config/lib/k_config/version.rb
Peeky : 0.0.49 : ~/dev/kgems/peeky/lib/peeky/version.rb
KDomain : 0.0.28 : ~/dev/kgems/k_domain/lib/k_domain/version.rb
KBuilder : 0.0.76 : ~/dev/kgems/k_builder/lib/k_builder/version.rb
KExt::Github : 0.0.8 : ~/dev/kgems/k_ext-github/lib/k_ext/github/version.rb
KDirector : 0.16.1 : ~/dev/kgems/k_director/lib/k_director/version.rb
KFileset : 0.0.7 : ~/dev/kgems/k_fileset/lib/k_fileset/version.rb
DrawioDsl : 0.11.8 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/drawio_dsl-0.11.8/lib/drawio_dsl/version.rb
KManager : 0.0.34 : ~/dev/kgems/k_manager/lib/k_manager/version.rb
KRailsTemplate : 0.0.2 : ~/dev/kgems/k_rails_template/lib/k_rails_template/version.rb
使用 GEM 安裝文件夾
KUtil : 0.0.28 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_util-0.0.28/lib/k_util/version.rb
KLog : 0.0.33 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_log-0.0.33/lib/k_log/version.rb
KType : 0.0.8 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_type-0.0.8/lib/k_type/version.rb
KDecor : 0.0.7 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_decor-0.0.7/lib/k_decor/version.rb
KDoc : 0.0.37 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_doc-0.0.37/lib/k_doc/version.rb
KConfig : 0.0.10 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_config-0.0.10/lib/k_config/version.rb
Peeky : 0.0.49 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/peeky-0.0.49/lib/peeky/version.rb
KDomain : 0.0.28 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_domain-0.0.28/lib/k_domain/version.rb
KBuilder : 0.0.75 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_builder-0.0.75/lib/k_builder/version.rb
KExt::Github : 0.0.8 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_ext-github-0.0.8/lib/k_ext/github/version.rb
KDirector : 0.16.1 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_director-0.16.1/lib/k_director/version.rb
KFileset : 0.0.6 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_fileset-0.0.6/lib/k_fileset/version.rb
DrawioDsl : 0.11.8 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/drawio_dsl-0.11.8/lib/drawio_dsl/version.rb
KManager : 0.0.33 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_manager-0.0.33/lib/k_manager/version.rb
KRailsTemplate : 0.0.2 : ~/dev/kgems/k_rails_template/lib/k_rails_template/version.rb
# frozen_string_literal: true
source 'https://rubygems.org'
gemspec
group :development, :test do
gem 'guard-bundler'
gem 'guard-rspec'
gem 'guard-rubocop'
gem 'rake'
gem 'rake-compiler', require: false
gem 'rspec', '~> 3.0'
gem 'rubocop'
gem 'rubocop-rake', require: false
gem 'rubocop-rspec', require: false
end
group :test do
gem 'simplecov', require: false
end
if ENV['KLUE_LOCAL_GEMS']&.to_s&.downcase == 'true'
group :development, :test do
puts 'Using Local GEMs'
gem 'handlebars-helpers' , path: '../handlebars-helpers'
gem 'k_builder' , path: '../k_builder'
gem 'k_builder-dotnet' , path: '../k_builder-dotnet'
gem 'k_builder-webpack5' , path: '../k_builder-webpack5'
gem 'k_config' , path: '../k_config'
gem 'k_decor' , path: '../k_decor'
gem 'k_director' , path: '../k_director'
gem 'k_doc' , path: '../k_doc'
gem 'k_domain' , path: '../k_domain'
gem 'k_ext-github' , path: '../k_ext-github'
gem 'k_fileset' , path: '../k_fileset'
gem 'k_log' , path: '../k_log'
gem 'k_manager' , path: '../k_manager'
gem 'k_type' , path: '../k_type'
gem 'k_util' , path: '../k_util'
gem 'peeky' , path: '../peeky'
end
end
./exe/k_rails_template
#!/usr/bin/env ruby
# frozen_string_literal: true
lib_path = File.expand_path('../lib', __dir__)
$LOAD_PATH.unshift(lib_path) unless $LOAD_PATH.include?(lib_path)
require 'k_rails_template'
Signal.trap('INT') do
warn("\n#{caller.join("\n")}: interrupted")
exit(1)
end
begin
KRailsTemplate::CLI.start
rescue KRailsTemplate::CLI::Error => e
puts "ERROR: #{e.message}"
exit 1
end
我做了一些調查,似乎我需要使用bundle exec
運行命令行工具
將./exe/k_rails_template project
更改為bundle exec ./exe/k_rails_template project
KUtil::Version : 0.0.28 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_util-0.0.28/lib/k_util/version.rb
KLog::Version : 0.0.33 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_log-0.0.33/lib/k_log/version.rb
KType::Version : 0.0.8 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_type-0.0.8/lib/k_type/version.rb
KDecor::Version : 0.0.7 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_decor-0.0.7/lib/k_decor/version.rb
KDoc::Version : 0.0.37 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_doc-0.0.37/lib/k_doc/version.rb
KConfig::Version : 0.0.10 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_config-0.0.10/lib/k_config/version.rb
Peeky::Version : 0.0.49 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/peeky-0.0.49/lib/peeky/version.rb
KDomain::Version : 0.0.28 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_domain-0.0.28/lib/k_domain/version.rb
KBuilder::Version : 0.0.75 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_builder-0.0.75/lib/k_builder/version.rb
KExt::Github::Version : 0.0.8 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_ext-github-0.0.8/lib/k_ext/github/version.rb
KDirector::Version : 0.16.1 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_director-0.16.1/lib/k_director/version.rb
KFileset::Version : 0.0.6 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_fileset-0.0.6/lib/k_fileset/version.rb
DrawioDsl::Version : 0.11.8 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/drawio_dsl-0.11.8/lib/drawio_dsl/version.rb
KManager::Version : 0.0.33 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/k_manager-0.0.33/lib/k_manager/version.rb
KRailsTemplate::Version : 0.0.2 : ~/dev/kgems/k_rails_template/lib/k_rails_template/version.rb
Using Local GEMs
KUtil::Version : 0.0.28 : ~/dev/kgems/k_util/lib/k_util/version.rb
KLog::Version : 0.0.34 : ~/dev/kgems/k_log/lib/k_log/version.rb
KType::Version : 0.0.10 : ~/dev/kgems/k_type/lib/k_type/version.rb
KDecor::Version : 0.0.8 : ~/dev/kgems/k_decor/lib/k_decor/version.rb
KDoc::Version : 0.0.37 : ~/dev/kgems/k_doc/lib/k_doc/version.rb
KConfig::Version : 0.0.10 : ~/dev/kgems/k_config/lib/k_config/version.rb
Peeky::Version : 0.0.49 : ~/dev/kgems/peeky/lib/peeky/version.rb
KDomain::Version : 0.0.28 : ~/dev/kgems/k_domain/lib/k_domain/version.rb
KBuilder::Version : 0.0.76 : ~/dev/kgems/k_builder/lib/k_builder/version.rb
KExt::Github::Version : 0.0.8 : ~/dev/kgems/k_ext-github/lib/k_ext/github/version.rb
KDirector::Version : 0.16.1 : ~/dev/kgems/k_director/lib/k_director/version.rb
KFileset::Version : 0.0.7 : ~/dev/kgems/k_fileset/lib/k_fileset/version.rb
DrawioDsl::Version : 0.11.8 : ~/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/drawio_dsl-0.11.8/lib/drawio_dsl/version.rb
KManager::Version : 0.0.34 : ~/dev/kgems/k_manager/lib/k_manager/version.rb
KRailsTemplate::Version : 0.0.2 : ~/dev/kgems/k_rails_template/lib/k_rails_template/version.rb
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.