支持
RVM 由志愿者社区维护,请将问题报告到 RVM 问题跟踪器。
如果您能提供帮助或希望成为维护者之一,请开始帮助我们。您可以在 RVM Github 组织 中找到更多与 RVM 相关的项目。
赞助商
Carbon Ads

Culerity 与 RVM 集成

如果您希望使用基于 RVM 的 Ruby 和 JRuby 与 Culerity,请按照以下步骤操作。请注意,第一组说明目前依赖于您使用最新版本。

设置 JRuby

在开始之前,您需要安装 JRuby 和 Celerity。简而言之,您需要

  1. 安装 JRuby
  2. rvm install jruby
  3. 创建一个 Celerity gemset 并使用它
  4. rvm use jruby@celerity --create
  5. 在这个 gemset 中安装 Celerity gem
  6. gem install celerity culerity

完成此操作后,您可以通过以下操作确认您是否已安装 Celerity

gem list | grep celerity

完成此操作后,下一步的关键步骤是为它设置一个包装器。为此,我们运行

rvm wrapper jruby@celerity celerity jruby

您现在可以通过环境变量在您的 .bash_profile 或类似文件中设置 Culerity 的路径

export JRUBY_INVOCATION="$(readlink "$(which celerity_jruby)")"

这应该会创建文件 ~/.rvm/bin/celerity_jruby,指向正确的 Ruby。您可以通过以下操作验证这一点

celerity_jruby -S gem list | grep celerity

假设这是正确的,您可以继续下一步。

配置 Culerity 以使用您的 JRuby Celerity

生成包装器后,您的下一个任务是告诉 Culerity 使用哪个 JRuby。如果您使用的是最新版本,请将以下代码片段添加到项目的 features/support/env.rb 文件中

Culerity.jruby_invocation = File.expand_path("~/.rvm/bin/celerity_jruby")

如果失败,请将 ~/.rvm/bin 替换为您的终端上显示的“echo $rvm_bin_path”的值(感谢 Matt Patterson 在 Culerity 方面使这一点更加清晰)。

在较旧版本的 Culerity 中,您需要手动指定钩子来切换环境。为此,您首先需要获取 JRuby 包装器目录的位置。要找到它,请在您的终端中运行以下命令并记下输出

dirname "$(readlink "$(which celerity_jruby)")"

这应该会返回类似于“/Users/sutto/.rvm/wrappers/jruby-1.5.1@celerity”的内容作为示例。接下来,您需要创建 features/support/culerity-hooks.rb,其中包含以下代码(感谢 agibralter、mchung 和 ashleymoran)

# culerity-hooks.rb
Before("@culerity,@celerity,@javascript") do |scenario|
  unless @original_path && @rvm_jruby_path
    @original_path  = ENV['PATH']
    @rvm_jruby_path = "/Users/sutto/.rvm/wrappers/jruby-1.5.1@celerity:"
  end
  ENV['PATH'] = @rvm_jruby_path
end

After("@culerity,@celerity,@javascript") do |scenario|
  ENV["PATH"] = @original_path
end

确保将“/Users/sutto/.rvm/wrappers/jruby-1.5.1@celerity”替换为您之前记下的值。

社区资源