【问题标题】:Does the Bundler 1.2.0 ruby version check obviate the need for a basic .rvmrc file?Bundler 1.2.0 ruby​​ 版本检查是否不需要基本的 .rvmrc 文件?
【发布时间】:2012-05-28 00:46:50
【问题描述】:

Bundler 1.2.0.pre 包含一个新的“ruby”DSL 选项。根据Heroku's documentation,他们使用这种新的 Gemfile 语法来控制推送应用时使用的 ruby​​ 版本。

作为预发布版本,新的 Bundler 选项的文档目前相当薄弱,Bundler 1.2 roadmap 只是将其列为“ruby 版本检查”。

我的问题是:目前我在大多数项目中使用单行 .rvmrc 文件,其中我只指定该项目的 ruby​​ 版本(例如rvm ruby-1.9.3)。我不使用 RVM gemset 或其他任何东西(我更喜欢在项目中提供所有必需的 gem,并让 Bundler 管理依赖项)。

鉴于我简单的 RVM 配置,Bundler 的 DSL 中的新“ruby”选项是否意味着我不再需要指定 .rvmrc 文件?还是它们是两种不同的东西?

(我确实喜欢 RVM 在我 cd 进入我的项目时自动切换 ruby​​ 版本的事实......不确定 Bundler 是否会这样做,或者它是否只是在当前版本不匹配时发出警告?)

【问题讨论】:

    标签: ruby rvm bundler


    【解决方案1】:

    新的ruby 是一个函数,它将允许最终计算为字符串的任何内容。

    不幸的是,如果您阅读它,您需要使用bundler 命令,假设您已经拥有一个 ruby​​。

    相反,RVM 为您提供了两种在 Gemfile 中定义 ruby​​ 的方法:

    1) ruby "1.9.3" - 简单字符串

    2) #ruby=1.9.3-p125 - 当您想为 ruby 使用 ruby​​ 代码或当您想指定补丁级别或 gemset 时的注释!:

    #ruby=1.9.3
    ruby ENV['RUBY_VERSION'] || '1.9.3'
    

    将允许捆绑器使用 RVM 加载的任何 ruby​​,但默认情况下将使用来自#ruby=

    1.9.3

    【讨论】:

    • Ryan 这不是我的决定,我必须在 RVM 中处理它,这真的很难,因为它都是 ruby​​ 代码,而且现在没有用于切换 ruby​​ 的基于 ruby​​ 的工具 - 所以当然不是可以阅读该版本 - 但即使我们会有一个 ruby​​ 进程,结果也可能会被扭曲 - 正如你注意到我以错误代码为例为什么要使用评论,你是否觉得需要一个注释来建议用户不要用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 2011-06-12
    • 1970-01-01
    相关资源
    最近更新 更多