今更ながら Rails Tutorial (その5.5) - WindowsにRubyをセットアップする -

## この記事について…

普段はRuby on Railsと無縁なプログラマなんですが、今更ながら**面白そう**という単純な理由から[**Ruby on Rails Tutorial**](https://railstutorial.jp/)をやってみようと思い立ちました。今回は[前回の記事](https://qiita.com/hideki0145/items/ae11503651e5c90b28dd)の番外編という形でやっていければと思います。
尚、Rails 5.1に対応した第4版を用いて、かつVagrantを使用した環境で進めていきます。

## WindowsにRubyをセットアップする

おそらくRuby on Railsでの開発を行っている方の大多数はMacOSかLinuxでの開発環境をメインにしているのではないかと思っています。ですが、今回はホストOSがWindowsである場合のRuby on Rails開発環境を頑張って作っていきたいと思います。(本職の開発環境がWindows依存の為に、ホストOSを変えづらいという事情があります。)
イメージしている環境は以下の通りです。

* Ruby on RailsはVagrant上のLinux環境で動作(railsコマンドは`vagrant ssh`した先で実行)
* コーディングはホストOSであるWindows上でVSCodeを使用して行う(Vagrantとは共有フォルダでやり取り)
* VSCode上でRubyのAutoCompleteその他を有効にする

…仮想環境でUbuntuデスクトップ版セットアップして、その上でRails開発環境を作る方がいいのか、上記のようにホストOSにも役割を分担する方がいいのか、これについては全く答えが出ていません。勉強にもなるので、今回は面倒くさそうな上記方法でいってみようと思います。

事前の学習では以下の投稿を参考にさせていただきました。ありがとうございます。

* [Rubyの実行環境構築 on Windows](https://qiita.com/3no3_tw/items/8c0bcf258370d91bf6e0)
* [Visual Studio CodeでRubyの開発環境を整えてみようとして失敗した話](http://nitteru.hatenablog.com/entry/2017/11/12/155337)

## RubyInstallerのインストール

Googleさんで「Ruby」と検索すると、[Rubyの公式サイト](https://www.ruby-lang.org/ja/)がトップに表示されるかと思います。まずはこのサイトのダウンロードページを覗いてみましょう。
すると「Windowsマシンでは、[**RubyInstaller**](https://rubyinstaller.org/)といったツールが使えます。」という記述があったので早速RubyInstallerをインストールしてみましょう。

とりあえず[**Ruby 2.4.3-2 (x64)**](https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-2.4.3-2/rubyinstaller-2.4.3-2-x64.exe)をインストールすることにしました。WHICH VERSION TO DOWNLOAD?の項でRuby 2.4.X系をお勧めしていたからです。本当はVagrant上でRuby 2.4.2系を使用しているので合わせるべきですが、いつか[**uru**](https://bitbucket.org/jonforums/uru/wiki/Downloads)を導入してRubyバージョンの切り替えを行うので今は深く考えないことにします。

さて、インストーラーがダウンロードできたら実行します。

1. License Agreement画面が表示されます。内容をよく確認して、良ければ`I accept the License`を選択して[Next]を押下します。
2. Installation Destination and Optional Tasks画面が表示されます。インストールフォルダはパスにスペースが入っていなければ変更してもいいようです。`Add Ruby executables to your PATH`はチェックあり、`Associate .rb and .rbw files with this Ruby installation`はお好みで、`Use UTF-8 as default external encoding.`は文字化けの懸念があるようなのと後からでも設定変更可能なのでチェックなしで[Install]を押下します。
3. Completing the Ruby Setup Wizard画面が表示されればインストール完了です。この後MSYS2のインストールに進む為、画面中央のチェックボックスはチェックありとして[Finish]を押下します。
![Completing.png](https://qiita-image-store.s3.amazonaws.com/0/78896/2507afa2-48a3-9874-2fcf-cf890286ec28.png)
4. コマンドプロンプトが起動しRubyInstaller2 for Windows画面が表示されます。1～3のすべての工程を処理する場合は、[Enter]キーを押下するだけで良いようです。ただし、ファイルのダウンロード等に大変時間が掛かります。
5. セットアップ - MSYS2 64bit画面が表示されます。[次へ]を押下します。
6. インストール先フォルダ画面が表示されます。必要に応じてインストールフォルダを変更して[次へ]を押下します。
7. スタートメニューのショートカット画面が表示されます。ここもそのままで良ければ[次へ]を押下します。インストールを開始します。
8. MSYS2 64bitのウィザードの完了画面が表示されればインストール完了です。[完了]を押下します。(尚、`MSYS2 64bitを実行中。`は誤訳らしいです。)
9. MSYS2のアップデートその他が開始されるので待ちます。
10. 以下のように処理が完了すれば一連の作業は完了です。[Enter]キーを押下して終了します。
![MSYS2.png](https://qiita-image-store.s3.amazonaws.com/0/78896/a89a2efc-9f6e-1f6e-1ee7-276a4e214999.png)
11. PowerShellで`ruby --version`を実行してRubyのバージョンが正しく返ってくれば、インストールできていることが確認できます。

これで、Vagrant上ではなく、ホストOSであるWindows上でRubyを使用できるようになりました。

## VSCodeとRubyの関連付け

ここからはVSCodeの拡張機能を使用してRubyのAutoCompleteを有効にしていきます。
当初[Ruby](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby)拡張機能だけで全て賄えるかと考えていたのですが、どうもAutoComplete周りで上手く動作しない箇所があるみたいなので、別途[Ruby Solargraph](https://marketplace.visualstudio.com/items?itemName=castwide.solargraph)を使用して設定しようと思います。
(リポジトリの[このイシュー](https://github.com/rubyide/vscode-ruby/pull/248)等を読んだ上での判断です。)

### AutoComplete

VSCode上でRubyのコーディングを行う際に、関数名等を自動補完するように設定します。
まずはPowerShellで以下のコマンドを実行し、コード解析とオートコンプリート用のRubyGemsである`Solargraph`をインストールします。

```powershell
gem install solargraph
gem list # このコマンドを実行すると、インストール済みのgem一覧が確認できます
```

そして、VSCodeの拡張機能で`Ruby Solargraph`をインストールします。検索をすればすぐに見つかると思います。
最後に、VSCodeの設定でSolargrachコマンドへのパスを指定します。今回は`C:\Ruby24-x64`にRubyをインストールしたので、下記のように指定してやりました。

```json
"solargraph.commandPath": "C:\\Ruby24-x64\\bin\\solargraph.bat"
```

これでRubyのAutoCompleteが有効となります！
![RubySolargraph.png](https://qiita-image-store.s3.amazonaws.com/0/78896/ebe9b97f-bdcb-f6ba-f68c-0c4c735f9c13.png)


これでチュートリアル消化が捗ることでしょう。