Zmuś SublimeREPL do użycia określonej wersji Ruby

1

Zainstalowałem SublimeREPL do użytku z Ruby. Próbuje uruchomić kod w Ruby 1.8.7 i chciałbym, aby działał w wersji 1.9.3, a później w innych wersjach Ruby. Nie jestem pewien, skąd dziedziczy środowisko. Obecnie moja ŚCIEŻKA to:

/home/user/.gem/ruby/1.9.3/bin
/home/user/.rubies/ruby-1.9.3-p547/lib/ruby/gems/1.9.1/bin
/home/user/.rubies/ruby-1.9.3-p547/bin
/home/user/.rvm/gems/ruby-1.8.7-p334@global/bin
/home/user/.rvm/rubies/ruby-1.8.7-p334/bin
/usr/lib64/qt-3.3/bin
/usr/local/bin
/usr/bin
/bin
/usr/local/sbin
/usr/sbin
/sbin
/home/user/bin
/home/user/bin
/home/user/.rvm/bin

(sformatowany pod kątem czytelności)
Do strony ustawień SublimeREPL dodałem:

{
    "default_extend_env": {"PATH": "/home/user/.rubies/ruby-1.9.3-p547/bin/ruby:{PATH}"}
}

(a także wypróbowanie odwrotnej strony, „{PATH}: / home ...”).
Próba uruchomienia repliki powoduje błąd:

/home/joe/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:296 ... (unimportant error)

Najwyraźniej nie używa ruby ​​1.9.3. Jak to zmienić?

Devon Parsons
źródło

Odpowiedzi:

1

Po pierwsze, PATHpowinieneś zawierać tylko katalogi, a nie określone pliki, więc "default_extend_env"wartość powinna wynosić /home/user/.rubies/ruby-1.9.3-p547/bin. Istnieje jednak sposób utworzenia opcji menu, aby uruchomić PRY z plikiem rubybinarnym w tym katalogu. Otwórz Packages/Userkatalog, wybierając Preferences -> Browse Packages..., a następnie wprowadzając Userkatalog. Tam utworzyć następującą strukturę katalogów: SublimeREPL/config/Ruby. Następnie w Sublime utwórz nowy plik JSON o następującej treści:

[
  {
    "id":"tools",
    "children":[
      {
        "caption":"SublimeREPL",
        "mnemonic":"r",
        "id":"SublimeREPL",
        "children":[
          {
            "caption":"Ruby 1.9.3",
            "children":[
              {
                "command":"repl_open",
                "caption":"Ruby",
                "id":"repl_ruby",
                "mnemonic":"r",
                "args":{
                  "type":"subprocess",
                  "external_id":"ruby",
                  "encoding":"utf8",
                  "cmd":{
                    "linux":[
                      "/home/user/.rubies/ruby-1.9.3-p547/bin/ruby",
                      "${packages}/SublimeREPL/config/Ruby/pry_repl.rb",
                      "$editor"
                    ]
                  },
                  "soft_quit":"\nexit\n",
                  "cwd":"$file_path",
                  "cmd_postfix":"\n",
                  "autocomplete_server": true,
                  "syntax":"Packages/Ruby/Ruby.tmLanguage"
                }
              }
            ]
          }
        ]
      }
    ]
  }
]

i zapisz to jako Packages/User/SublimeREPL/config/Ruby/Main.sublime-menu. Teraz, jeśli przejdziesz do Tools -> SublimeREPL -> Ruby, powinna być Ruby 1.9.3dostępna opcja menu.

MattDMo
źródło
Wielkie dzięki, to zadziałało dla mnie. Teraz jednak nie może znaleźć podważa, mimo że jest zainstalowany dla wersji 1.9.3. Wygląda na problem gem env, mówi, że mój ruby ​​exec to 1.9.3, ale katalog wykonywalny, katalog instalacyjny i najważniejsze ścieżki klejnotów to 1.8.7
Devon Parsons
@DevonParsons spróbuj dodać wszystkie ścieżki Ruby 1.9.3 ze PATHzmiennej do "default_extend_env"zmiennej. Jeśli jesteś zainteresowany, spójrz na Packages/SublimeREPL/config/Ruby/pry_repl.rbto, co jest wymagane.
MattDMo,