LoginSignup
11
11

More than 5 years have passed since last update.

IDEAでどこでもRuby1.9の文法を使う

Posted at

Ruby プラグインをインストールしただけの IntelliJ IDEA では、たとえば Vagrantfile のここが文法エラーになります:

  config.vm.network "private_network", ip: "192.168.33.10"

エラーを放置するとコードフォーマッターで文法を壊されます。とくにRubyはスペースあけるあけないで変わってくるので。

これは Ruby1.8 にない文法ゆえに出ている、というのがわかればこう書き換えればいいのですが:

  config.vm.network "private_network", { :ip => "192.168.33.10" }

なんでこんな変更したのか意味わかりませんね。負けた気になります。

Ruby プラグインは、Ruby SDK が指定されているモジュール以下のファイルでないと、文法バージョンを指定できません。指定できなかったときのデフォルトは 1.8 になります。エー (´Д`)

強引な方法としては、プロジェクトのルートを Ruby モジュールとして定義し、そのモジュールが使用する Ruby SDK に、1.9 以上のものを指定します。たとえPHPのプロジェクトだろうとPythonのプロジェクトだろうと、ルートモジュールの種類を Ruby にしてしまうという...

PythonやPHPとは競合が起こらないので動くんですが、これも負けた気になります。

別の解決策として、JRuby ファセットが使えます。

  • rbenv などで jruby の最新版をインストール
  • ⌘ + ; で出てくる SDKs に JRuby SDK として ~/.rbenv 以下のパスを追加
  • このとき JRuby SDK の Language Level が 1.8 なのを 1.9 以上に修正
  • Modules でルートモジュールを右クリックして JRuby フレームワークを追加
  • Language Level >= 1.9 の JRuby SDK を選択

これで、PHP とか Java とか Python とか、そういうのがルートに来てるプロジェクトでも、Vagrantfile の文法などに Ruby 1.9 が使えるようになります。

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11