我试图尽可能多地使用RubyMine,而RubyMine有时会要求使用我自己不会使用的宝石(RubyMine会这样做)。
是否有可能在Gemfile中检测到,我是从RubyMine捆绑的?或者一般情况下:是否有可能检测到我正在捆绑的工具(终端、iTerm、RubyMine、TeamCity)?
我知道有具体的平台红宝石作为条件。我想要把它放进我的Gemfile中,如下所示:
tool :rubymine do
gem 'minitest-reporters'
gem 'ruby-debug'
end因此,当我从例如RubyMine运行捆绑时,我将安装最小的记录器和红宝石调试程序,但是我的同事谁从终端捆绑将不会得到这些宝石安装。
发布于 2016-08-22 19:35:27
好的,这里我找到了一些方法来判断,您是从RubyMine内部运行的
(把这个放到你的Gemfile中来测试)
puts [
ORIGINAL_ENV['OLDPWD'],
ORIGINAL_ENV['RM_INFO'],
ORIGINAL_ENV['RUBYLIB'],
ORIGINAL_ENV['RUBYMINE_TESTUNIT_REPORTER'],
ORIGINAL_ENV['TEAMCITY_RAKE_RUNNER_MODE'],
ORIGINAL_ENV['TEAMCITY_RAKE_RUNNER_USED_FRAMEWORKS'],
ORIGINAL_ENV['XPC_SERVICE_NAME']
]因此,例如,这样我就可以为RubyMine安装gems,只有在真正需要它的时候才能安装它。
group :development do
# Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
gem 'web-console'
gem 'listen', '~> 3.0.5'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
if ORIGINAL_ENV && ORIGINAL_ENV['TEAMCITY_RAKE_RUNNER_MODE']
gem 'debase'
end
end唯一不好的是,这将改变Gemfile.lock
发布于 2014-01-07 15:14:46
通常,解决这一问题的方法是使用gem install安装额外的gems,而不是将它们放在Gemfile中。
如果RubyMine依赖于Bundler在运行时能够找到那些宝石,我会说这是一个bug。
https://stackoverflow.com/questions/20972757
复制相似问题