30分でできるRuby on RailsとGitHubやエディタまわりの環境構築


## はじめに

Ruby on Railsで開発を行うエンジニアになって3ヶ月、環境構築をするとなると、その機会自体あまり多くないのもあって未だにいろいろな記事を行ったり来たりと非常に労力と時間を消費する。そこで、Railsを使うエンジニアがGitHubやエディタの設定含めて**30分で**快適に開発ができる環境にするフローをまとめた。実際に自分もスムーズに環境構築が出来て業務にすぐ移れた。




<img src="https://qiita-image-store.s3.amazonaws.com/0/254083/2c0b6083-815b-7eab-23dd-d93660d99560.jpeg" width=50%>

## 環境
- mac OS High Sierraバージョン10.13.6

## 手順
- Homebrewをインストール
- rbenvをインストール
- rubyをインストール
- Railsをインストール
- GitHubと連携
- コマンドプロンプトをシュッとする
- エディタをインストール(VS Code)
- エディタに拡張機能をインストール

### Homebrewのインストール
Homebrewとは一言で言うとパッケージ管理ソフトのこと。どの記事でもまずインストールしてるのでとりあえず下のコマンドをMacのターミナルにコピペしよう。
注：`$`はターミナルで右のコマンドを打ってね！という記号なので`$`は含めないように！

```
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

完了するとビールの絵文字🍺が出てくるのでここで一杯乾杯〜🍻


追記(2018/09/12):
Homebrewをインストールする際に予めXcodeとXcode Command Line Toolのインストールが必須という記事がよくありますが、追記日現在では特に**インストールすること無く**上記のコマンドだけでHomebrewのインストールが**可能**となっています。
コメントを下さった@gyk_eri さんありがとうございます。


参考リンク:[Macに無駄なくRuby on Rails 開発環境 - TIS ENGINEER NOTE](https://tisnote.com/mac-rails-on-ruby-smart/)

### rbenvをインストール

さっきインストールしたHomebrewを使ってRubyのバージョン管理システム、rbenvを入れる。rbenvのおかげでプロジェクトごとにRubyのバージョンを変えて管理できる。

rbenvのインストールも以下をターミナルにコピペでOK！

```
$ brew install rbenv ruby-build
```

終わったら、無事インストールされてるか確認！

```
$ rbenv -v
#=> rbenv 1.1.1(バージョンが表示されれば成功！)
```
### .bash_profileに環境変数をセット

こちらもコマンドをターミナルにコピペでOK！

```
$ echo 'export PATH="~/.rbenv/shims:/usr/local/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
```


### Rubyをインストール

いよいよRubyのインストール！ 最初にRubyのバージョンを確認。

```
$ rbenv install --list
```

するとたくさんのバージョンが出てくる。
`-dev`とか後ろについているのは開発用だったりするので、安定版を選ぶのがいい。

```
  ...
  ...
  2.4.4
  2.5.0-dev
  2.5.0-preview1
  2.5.0-rc1
  2.5.0
  2.5.1(←これが現時点で最新安定版！)
  2.6.0-dev
  2.6.0-preview1
  2.6.0-preview2
  jruby-1.5.6
  jruby-1.6.3
  jruby-1.6.4
  ...
  ...
```

2018/9/7現在`2.5.1`が最新安定版なのでこちらをインストールする。

```
#バージョン2.5.1をインストール
$ rbenv install 2.5.1

#デフォルトで利用するRubyのバージョンを指定してあげる
$ rbenv global 2.5.1

#設定できてるか確認
$ ruby -v

#上のコマンドを打ってこんな感じで正しくバージョンが指定されてたらOK
#=> ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
```

これで無事Rubyのインストール完了:tada:

### Bundlerのインストール

Railsでの開発をしていく上で、こちら必要になってくるのでインストール。

RubyやRailsのgemというライブラリ（便利機能がまとまっているもの）を管理できるシステム。

```
$ gem install bundler
$ bundle -v
#=>Bundler version 1.16.4(バージョンが表示されればOK)
```
### DBをインストール

私はHerokuを使いたいので、DBはMySQLやsqlite3などいろいろある中でPostgresqlをインストール。

```
$ brew install postgresql
$ psql --version
#=>psql (PostgreSQL) 10.5(バージョンが表示されればOK)
```

### Railsのインストール

```
$ gem install rails
$ rails -v
#=> Rails 5.2.1(バージョンが表示されればOK)
```



お疲れ様でした:tada:

これで基本的な環境構築はおしまい✨

次からはGitHubとの連携や最初にやっておくと開発が捗る初期設定なので、環境構築だけできればOK！なんて方はここまでで完了！


## gitの設定
名前とメールアドレスと登録してgitの設定をする

```
$ git config --global user.name "名前(フルネームでなくてもOK)"
$ git config --global user.email "メールアドレス"
```

ちょっと便利にする設定

１. コマンドライン上でgitの出力に色を付ける

```
$ git config --global color.ui true
```

２. コマンドの打ち間違いをしてもよしなに予測して処理してくれる

```
$ git config --global help.autocorrect 1
```


## GitHubとの連携

GitHubはチーム開発でよく使われるソフトウェア開発のプラットフォーム。

GitHubのアカウントを持っていない方は[GitHub](https://github.com/)でアカウント作っておくと良い。

SSHの秘密鍵公開鍵の設定が苦手な私は、GitHub上にあるリポジトリをローカルにコピー(`$ git clone `)したい時に**HTTPS**のclone用アドレスを使ってる。

１. GitHub上のcloneボタンを押すと Use HTTPSボタンが右上に表示されている
<img width="516" alt="スクリーンショット 2018-09-07 12.22.30.png" src="https://qiita-image-store.s3.amazonaws.com/0/254083/6029163f-19ff-0413-6f9e-dbfdfb323908.png">

２. これをクリックすると、HTTPSのリンクがコピーできるようになるのでコピー

<img width="558" alt="スクリーンショット 2018-09-07 12.29.42.png" src="https://qiita-image-store.s3.amazonaws.com/0/254083/abd6eaec-b36a-225d-7bad-f3c8dce7152c.png">

３. ペーストしてローカルにダウンロード

```
$ git clone https://github.com/pittsunkana/everydayrails-rspec-2017.git
```

ユーザー名とパスワードが聞かれるので入力したらgit cloneが開始される✨

よりセキュアにGitHubを使うには二段階認証がオススメ。
二段階認証を設定していると、上でパスワードを求められてたときに自分の設定したパスワードを入れても弾かれてしまう...。
私はそこで少しハマってしまった。
<blockquote class="twitter-tweet" data-partner="tweetdeck"><p lang="ja" dir="ltr">あ、でも、httpsでgit cloneしようとしたけど正しいIDとパスワード打っても出来なかった🤔<br>確か、GitHub上でなにか追加しないといけないんだっけなー、、。</p>&mdash; kanacan✨ (@_kanacan_) <a href="https://twitter.com/_kanacan_/status/1037287124062486528?ref_src=twsrc%5Etfw">September 5, 2018</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


調べると、二段階認証を設定してる場合はパスワードの代わりにトークンを発行してそれを使ってねとのこと。トークンは、右のリンクから設定できる。[Personal Access Tokens](https://github.com/settings/tokens)

参考リンク:[Githubの2段階認証を実施してgitコマンドが使えないときにやったこと - Qiita](https://qiita.com/n_morioka/items/650d2950f527d594a00f)


## コマンドプロンプトを変更する

プロンプトとは、ターミナルを開いたときに`$`の前に表示されている、`ユーザー名noMacbook:~ ユーザー名`のこと。

長いのと、埋もれて見にくいのでいつも変えている。

ひとまず今の設定を確認

```
$ echo $PS1 
```

おそらく`\h:\W \u$ `と表示される。

私は今いるディレクトリさえ分かれば良く、尚且つ改行して色もつけて見やすくしたかったので、こんな感じに設定にした。

<img width="252" alt="スクリーンショット 2018-09-07 12.53.24.png" src="https://qiita-image-store.s3.amazonaws.com/0/254083/7bf0e1d5-c397-caa5-4284-18d6154aa602.png">


1. Finderでユーザー名が書かれているタブを開いた状態で`Command (⌘) + Shift + .（ピリオド）`を押すと隠しファイルが表示される。

2. その中から.bash_profileを開いて以下を追加

```
export PS1="\[\e[1;36m\][\W]\n \\$ \[\e[m\]"
```

![](https://hackmd.hanica.me/uploads/upload_f361e7bbd7650781a6400dff59a820e2.png)

ターミナルを再起動すると表示が変わってるはず！


参考リンク：[BashでPromptの色を変更する方法 - Qiita](https://qiita.com/wildeagle/items/5da17e007e2c284dc5dd)


## エディタのインストール

続いては実際にプログラムを書いていくのに欠かせない、エディタをインストールしていく。
エディタは完全に好みなので、好きなエディタをインストールすると良いと思う。


私自身は以前ProgateでおすすめされていたのもあってAtomを使っていたが、業務に入ってからVisualStudioCodeに乗り換えた。
理由は複数のファイルやプロジェクトを開いても軽快な操作だったり、標準でターミナルがエディタと同じ画面で使えたり、日本語に対応していたりと使い勝手が良かったから。

せっかくなのでVS Codeのダウンロード手順を紹介
[Visual Studio Code - Code Editing. Redefined](https://code.visualstudio.com/)

1. 公式サイトのダウンロードボタンからダウンロードする

おわり🤗


## VSCodeをもっと使いやすく

### 拡張機能を入れて見やすく使いやすく

Ruby on Railsを使っていたら、まずはRubyやRailsと検索して上位に出てくる人気のSnippetなどをインストール。いらなくなればいつでもアンインストールできる。


そして私が実際に使っていて開発が捗る拡張機能が3つあるので紹介。

#### 1. [Material Icon Theme](https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme)
<img width="634" alt="スクリーンショット 2018-09-07 14.26.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/254083/dff44018-2e74-b128-d1c2-19f33c1ada7e.png">


これは、インストールしてから写真のように設定すると、ファイルに応じてアイコンが表示される。iconのテーマはたくさんあるのでこちらもお好みで選んでいただくと良いのだが、**Material Icon Theme**のいいところは、Model、View、Controllerの**フォルダごとに**iconの色や見た目が違うので視覚的にフォルダの判別がしやすい。
Railsを使っているとMVCを行ったり来たりするからとても捗る。


#### 2. [indent-rainbow](https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow)
![example.png](https://qiita-image-store.s3.amazonaws.com/0/254083/8b551dae-39c9-3f20-0105-a47e2fff82cb.png)

これは、インデントの深さごとに色をつけてくれる拡張機能。
目で追ったり、点の数を数えるよりよっぽど捗る！
こちらはインストールするだけで適用される(再読込は必要。毎回やると面倒なので拡張機能すべてインストールしてからがおすすめ)



#### 3. [Bracket Pair Colorizer](https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer)
括弧のペアを自動で色分けしてくれるので、閉じ忘れや範囲を見失うことが少なくなった。
これはTwitterで便利！と話題になっていたので入れたらとても見やすくなったのでおすすめ。
こちらもインストールするだけで適用される。
![example (1).png](https://qiita-image-store.s3.amazonaws.com/0/254083/6e600c6e-7fae-a658-fe5e-bf8a9c45d190.png)


拡張機能は他にもたくさん便利なものがあるので色々試してると楽しい。

### 設定を変更して使いやすく

VSCodeを使っていて少し不満だったのが、ファイルを開いてる状態で別のファイルを開こうとすると開いているファイルに上書きされて新たに別のファイルが開かれてしまうこと。(GIF参照)
![9月-12-2018 17-06-50.gif](https://qiita-image-store.s3.amazonaws.com/0/254083/f2165f2f-023b-6462-0500-0e27c5137cf0.gif)



これは設定から変更ができるのでこの段階で設定しておきます。


１. VSCodeの設定を開く

 <img width="718" alt="スクリーンショット 2018-09-07 16.05.25.png" src="https://qiita-image-store.s3.amazonaws.com/0/254083/f646ec81-e6db-06df-a931-ba20466ef204.png"> 
２.検索窓に`workbench.editor.enable`と入力

`"workbench.editor.enablePreview: true"`
`"workbench.editor.enablePreviewFromQuickOpen": true`
(⌘Pで開くときも同様になるようにする)

上の２つが該当の初期設定なので、`true`を`false`に変えることで新規で開くようになる。

３. 左側にマウスカーソルを合わせると鉛筆のマークが出るので上の２つを`false`に変更。

![9月-12-2018 17-08-05.gif](https://qiita-image-store.s3.amazonaws.com/0/254083/01a57fde-5f31-6dd4-7500-4022e496da8c.gif)


４. 設定を閉じるとこんな感じで新規で開くようになる。
![9月-12-2018 17-05-38.gif](https://qiita-image-store.s3.amazonaws.com/0/254083/25934535-3d9a-58c0-bdf2-54a8c9186756.gif)

これでいますぐ開発できる環境が整った✨

## まとめ

今回はRubyやRailsだけでなく直ぐに業務で開発ができるところまでセッティングをするという趣旨だったので、他の記事に比べてボリュームは多かったと思う。
ただここに書いてあるコマンドをコピペしたり設定していけば30分くらいで終わる内容になっているので色々な参考記事を縦横無尽しながら環境を作っていくよりするよりは結果的に早く業務に入れるかと思う。 サクッと環境構築を終わらせて、ガリガリコードを書いていこう！