- chruby 20170509.700(in MELPA)
- Emacs integration for chruby
概要
chrubyはRubyのバージョンを切り替えるものです。
類似のものにrbenvやrvmがありますが、
chrubyの方が新しく、シンプルな仕組みになっています。
RSpecなどのgemによってインストールされたコマンドを
そのまま実行できるメリットもあります。
rbenvだとrbenv rehashが必要になります。
chrubyはシェル版 とelisp版があります。
chruby.elをインストールすると、
Emacs内部で使うRuby(eshellやcall-process)でも
Rubyの切り替えができるようになります。
chrubyを使う前にruby-installで使うRubyをインストールしてください。
http://www.oiax.jp/rails/zakkan/chruby_on_ubuntu.html
がとても詳しいです。
パッケージでインストールすれば設定は不要です。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてchrubyを使う方は
以下のコマンドを実行します。
M-x package-install chruby
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name chruby
使い方
eshell
eshell $ chruby "1.9"; ruby -v ("/r/.gem/ruby/2.1.0/bin" "/r/.rubies/ruby-1.9.3-p547/bin") ruby 1.9.3p547 (2014-05-14) [x86_64-linux] eshell $ chruby "2"; ruby -v ("/r/.gem/ruby/2.1.0/bin" "/r/.rubies/ruby-2.1.2/bin") ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
call-process
(defun chruby-test (ver) (with-temp-buffer (chruby ver) (call-process "ruby" nil t nil "-v") (buffer-string))) (chruby-test "1.9") ; => "ruby 1.9.3p547 (2014-05-14) [x86_64-linux]\n" (chruby-test "2") ; => "ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]\n"
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。