首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Gemfile中检测捆绑来源

在Gemfile中检测捆绑来源
EN

Stack Overflow用户
提问于 2014-01-07 13:22:21
回答 2查看 191关注 0票数 0

我试图尽可能多地使用RubyMine,而RubyMine有时会要求使用我自己不会使用的宝石(RubyMine会这样做)。

是否有可能在Gemfile中检测到,我是从RubyMine捆绑的?或者一般情况下:是否有可能检测到我正在捆绑的工具(终端、iTerm、RubyMine、TeamCity)?

我知道有具体的平台红宝石作为条件。我想要把它放进我的Gemfile中,如下所示:

代码语言:javascript
复制
tool :rubymine do
  gem 'minitest-reporters'
  gem 'ruby-debug'
end

因此,当我从例如RubyMine运行捆绑时,我将安装最小的记录器和红宝石调试程序,但是我的同事谁从终端捆绑将不会得到这些宝石安装。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-22 19:35:27

好的,这里我找到了一些方法来判断,您是从RubyMine内部运行的

(把这个放到你的Gemfile中来测试)

代码语言:javascript
复制
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,只有在真正需要它的时候才能安装它。

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2014-01-07 15:14:46

通常,解决这一问题的方法是使用gem install安装额外的gems,而不是将它们放在Gemfile中。

如果RubyMine依赖于Bundler在运行时能够找到那些宝石,我会说这是一个bug。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20972757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档