Какие драгоценные камни использует JRuby Rails? - PullRequest
3 голосов
/ 05 марта 2012

Если я запускаю свой сервер WEBrick, используя

bundle exec jruby -S rails s

Я получаю следующее предупреждение

c:/Program Files/jruby-1.6.7/lib/ruby/gems/1.8/gems/activesupport-
  3.2.2.rc1/lib/active_support/core_ext/string/output_safety.rb:34 
  warning: regexp match /.../n against to UTF-8 string

Теперь, не обращайте внимания на предупреждение, это не часть моего вопроса. Что является частью вопроса, почему драгоценные камни из 1.8 используются, когда JRuby настроен на использование режима 1.9?

$ bundle exec jruby -S rails s
=> Booting WEBrick
=> Rails 3.2.2.rc1 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-03-05 13:41:02] INFO  WEBrick 1.3.1
[2012-03-05 13:41:02] INFO  ruby 1.9.2 (2012-02-22) [java]
[2012-03-05 13:41:02] INFO  WEBrick::HTTPServer#start: pid=7624 port=3000

Версия:

$ jruby -v
jruby 1.6.7 (ruby-1.9.2-p312) (2012-02-22 3e82bc8) 
  (Java HotSpot(TM) Client VM 1.6.0_27) [Windows Vista-x86-java]

1 Ответ

2 голосов
/ 05 марта 2012

Это тоже меня заинтересовало!(=

Независимо от того, какой режим вы используете, мастер репо для драгоценного камня находится в каталоге 1.8:

$ jruby -S gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.9
  - RUBY VERSION: 1.8.7 (2011-10-25 patchlevel 330) [java]
  - INSTALLATION DIRECTORY: C:/dev/jruby-1.6.5/lib/ruby/gems/1.8
...

  - GEM PATHS:
     - C:/dev/jruby-1.6.5/lib/ruby/gems/1.8
     - C:/.gem/jruby/1.8

И с --1.9:

$ jruby --1.9 -S gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.9
  - RUBY VERSION: 1.9.2 (2011-10-25 patchlevel 136) [java]
  - INSTALLATION DIRECTORY: C:/dev/jruby-1.6.5/lib/ruby/gems/1.8
...

  - GEM PATHS:
     - C:/dev/jruby-1.6.5/lib/ruby/gems/1.8
     - C:/.gem/jruby/1.9

Каталог установки установлен во время компиляции JRuby с помощью jruby.gem.home, который по умолчанию установлен на:

jruby.gem.home.1.8=lib/ruby/gems/1.8

default.build.properties в кодовой базе JRuby)

Однакоэто не должно быть проблемой, потому что при работе в режиме --1.9, LOAD_PATH содержит 1.8.

$ jruby --1.9 -rpp -e 'pp $LOAD_PATH'
["C:/dev/jruby-1.6.5/lib/ruby/site_ruby/1.9",
 "C:/dev/jruby-1.6.5/lib/ruby/site_ruby/shared",
 "C:/dev/jruby-1.6.5/lib/ruby/site_ruby/1.8",
 "C:/dev/jruby-1.6.5/lib/ruby/1.9"]
...