支援
RVM 由志工社群維護,請將問題回報至 RVM 問題追蹤器。
如果您能提供協助或希望成為維護人員之一,請立即開始提供協助。您可以在 RVM Github 組織 找到更多與 RVM 相關的專案。
贊助者
Carbon Ads

Culerity 與 RVM 整合

如果您希望在 Culerity 中使用基於 rvm 的 ruby 和 jruby,請按照下列步驟進行。請注意,第一組說明目前仰賴您使用最新版本。

設定 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 中,您需要手動指定掛鉤以切換 env。為此,您需要先取得 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」替換為您先前記下的值。

社群資源