RailsConsoleを見やすくする(DB)

AwesomePrint Gemで解決!!

デフォルトのRails Console見づらくない?

  • 項目やデータが少ない場合はシンプルに見えて良いんだけど
  • 色が少ないから、いまいちパッとしない
  • というか改行されないのはつらい

f:id:nishide-h:20190419174146p:plain
AwesomePrint道入前

コンソールのカラーって何でつけてんだっけ?

  • VIm自身にカラースキームがある
  • 使っているコンソール端末、Itermにもカラースキームがある
  • Railsなので普通にGemあったわw以下サイト

github.com

Awesome Print Gem導入してスッキリした!

  • Gemなので導入簡単
  • カラムごとに改行して色分されて見やすい
  • 添付画像だとわかりにくいけど改行入って横幅が短くなるので変なとこで改行されないのはホント助かる

f:id:nishide-h:20190419174047p:plain
AwesomePrint道入後

PS 速習実践ガイドでもこのGem紹介されてました(>ω<)

appearInでカメラ・マイクが繋がらなくて焦った

OS側のブラウザ許可設定ができてなかった

Mojaveの場合だと、システム設定->セキュリティとプライバシー にあるプライバシータブを押して カメラを選択すると出てくる対象ブラウザにチェックをいれて許可する。

現象

appear.inというサービスでTV会議をすることが多い。 昨日接続しようとしたら、接続はできたものの以下エラーで カメラ・マイクが繋がらなかった。

以下のウィンドウがチラッと表示される Image from Gyazo

appearInのカメラ設定画面開くとこんな感じ 真ん中の黒い部分に本来はカメラ画像が出る Image from Gyazo

原因

去年の最後にMacOSをクリアにして再インストールしたが そのさい設定が元に戻っていなかった。

調べてみるとMojaveからちょっと設定方法が変わったっぽい。 Chromeでは駄目だったが、Safariだと問題なくカメラ写ったので Chromeのマイク・カメラの許可をいじったが結局はOS側でした。 まぁそっちの設定も必要だけど。

本家サイトにも設定方法書いてあった。 https://appearin.helpscoutdocs.com/article/205-appear-in-isnt-selecting-camera-mic

Bootstrap4時のRspec radiobutton編

CSSフレームワークは便利なんだけど、テストコードに悩むことがあったのでメモ

結論 CSSのSelector使ってテストする

通常のselectタグのラジオボタンのテストなら

expect(page).to have_select("selectタグの名称", selected: "選択値")

で良いんだけどBootstrap4を使うとselectタグを使用しなくて
checkedで判断するというより.activeで判断する。

以下Bootstrapでのラジオボタン

<div class="btn-group btn-group-toggle" data-toggle="buttons">
  <label class="btn btn-secondary active">
    <input type="radio" name="options id="option1" autocomplete="off"" checked> アクティブ
  </label>
  <label class="btn btn-secondary">
    <input type="radio" name="options" id="option2" autocomplete="off"> ラジオ
  </label>
  <label class="btn btn-secondary">
    <input type="radio" name="options" id="option3" autocomplete="off"> ラジオ
  </label>
</div>

こうなるので、テストコードとしては以下で判断する。CSSセレクタは便利

expect(page).to have_selector(".active", text: "アクティブ")

Bootstrap4時のRspec radiobutton編

CSSフレームワークは便利なんだけど、テストコードに悩むことがあったのでメモ

結論 CSSのSelector使ってテストする

通常のselectタグのラジオボタンのテストなら

expect(page).to have_select("selectタグの名称", selected: "選択値")

で良いんだけどBootstrap4を使うとselectタグを使用しなくて
checkedで判断するというより.activeで判断する。

以下Bootstrapでのラジオボタン

<div class="btn-group btn-group-toggle" data-toggle="buttons">
  <label class="btn btn-secondary active">
    <input type="radio" name="options id="option1" autocomplete="off"" checked> アクティブ
  </label>
  <label class="btn btn-secondary">
    <input type="radio" name="options" id="option2" autocomplete="off"> ラジオ
  </label>
  <label class="btn btn-secondary">
    <input type="radio" name="options" id="option3" autocomplete="off"> ラジオ
  </label>
</div>

こうなるので、テストコードとしては以下で判断する。CSSセレクタは便利

expect(page).to have_selector(".active", text: "アクティブ")

PostgreSQLのアップグレードで起動失敗

HomebrewでインストールしたPostgreSQL。 アップデートしたらサービスとして起動はするんだけど psql打つとエラーが出てDBに接続できない。

課題

$ psql postgres
$ psql: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

環境が悪いのか、何が悪いのかが分かってないが
対応策として以下でなんとかはなった。 

注意)fixBrewLionPostgresql.sh がいま無さそう…

解決策

$ cd /usr/local/Cellar/postgresql
$ curl -o fixBrewLionPostgresql.sh http://nextmarvel.net/blog/downloads/fixBrewLionPostgres.sh
$ chmod 777 fixBrewLionPostgresql.sh
$ ./fixBrewLionPostgresql.sh
$ pg_ctl -D /usr/local/var/postgres start

参考サイト

qiita.com

miniTest system test できてなかった

Systemテスト実行は $ rails test:system

Railsアプリ作っててテストはminiTestを使用してた

  • 個人的にはRspecのほうが読みやすい
  • 他プロジェクトでminiTestを使用してたので統一した
  • まぁ結局悩むのはCapybaraのassertionだしね

modelのテストでFixture変えたのに

  • なんでシステムテストでエラー出ないのかな?と思ってた
  • まぁあとで直すして思ってたらテストが実行できてなかった
  • $ rails test はsystemのテストは実行してくれない

$ rails test:system で無事エラー出た

  • 最初にまとめて書いてたのもよくない。TDDの順序ミスった
  • まとめてできたら便利なのに、と思ったらあえての仕様のもよう
  • 一応の解決策としては$ rails test test/* でどっちもテストしてくれた

参考サイト satococoa.hatenablog.com