ruby

mysql2 gem 経由で MySQL サーバ接続時ライブラリの `LoadError` が発生する

mysql2 gem 経由で MySQL サーバに接続しようとすると、ライブラリ /usr/local/lib/libmysqlclient.18.dylibがロードされず、LoadErrorが発生しました。 /Users/username/reposname/vendor/bundle/ruby/2.3.0/gems/mysql2-0.4.3/lib/mysql2.rb:31:in `requir…

unicorn コマンドと unicorn_rails コマンドの違いと使い分け

unicorn コマンドと unicorn_rails コマンドの違いは -E オプションで渡すものが RACK_ENV になるのか、RAILS_ENV になるのかがメインのよう。 でも ActiveAdmin を使うときなどは unicorn_rails じゃなかったりするようだし、Rails アプリケーションの場合…

Unicorn の特徴について初歩的なことを書いておく

アプリサーバー対決 パート1:主なRubyアプリケーションサーバーの機能比較 [和訳] - Engine Yard Blog を読んで、Unicorn がわかった。 高速クライアント用と呼ばれる理由 ホットデプロイをどのように実現しているか Unicorn はmasterプロセスとそれをfork…

各種偽装データを作成できる Faker が便利

Ruby gem の Faker が便利だったのでメモしておきます。 この gem はTESTをする時などに用意したくなる fixture などを作成するときなどに活躍します。 文字数指定で validation しているコードを TEST したいときや email アドレスのフォーマットに従ってい…

演算子 && と and の使い分け

Ruby における演算子 && と and は同じ意味を持ちますが優先度が異なります。(Perlについても同様) これによって使うべきシーンがそれぞれ異なりますので、ここにはその辺りの使い分けについて書いておきます。 定義 定義は && も and も「左辺を評価し、真…

RSpec expect の () と {} の違い

RSpec の expect において expect() expect {} はそれぞれ値を引数として取得するか、ブロックつきメソッドを引数とするかが異なります。 expect() これにより、expect() ではすでに取得済みのレコードがあり、それが予期する値と等しいかどうかなどをTESTす…

binding.pry から脱出するコマンド

binding.pry は debug の際に step 実行を行うことができ非常に便利なものです。 ただ脱出方法がいまいちわからず RSpec などで複数のテストケースを実行してしまう時など Ctrl + D の連打はつらいものがありました。 それでちょっと調べてみたらすぐにでて…

配列における `<<` と `+` の違い

a = [1, 2, 3] に b = [4, 5, 6] を a << b とかで突っ込むと b は a の1要素として入ります。 つまり、[1, 2, 3, [4, 5, 6]] ですね。 これを平坦化したいときには a.flatten! とかやると a が破壊的に平坦化されます。 [1, 2, 3, 4, 5, 6] しかし、最初か…

初めての Ruby を読んだ

初めての Ruby を読みました。 良書でした。 この本は他の言語を使ったことがある人が Ruby の言語仕様をざっとキャッチアップするのに最適な本な気がします。 自分は本を読んだ後に書かないと知識が残留しない方なので、 自分忘備録として個人的に便利だっ…

expect change を複数データ同時にTESTしたいときに

expect change を複数データ同時にTESTしたいときなどがあります。 そんな時には以下のようにするとできます。(例はあまり適切ではありません...) expect{ execute }.to change{ [User.find_by(id: 1).coin, User.find_by(id: 1).skill] }.from([100, 0]).to…

`{ ... }` と `do ... end` の違いと使い分けるべきシーン

ブロック付きメソッド呼び出しを記述する際には { ... } あるいは do ... end を使うと思います。 しかしこれらは厳密にいうと異なります。 その違いは 結合強度 です。 { ... } の場合 some_method other_method { ... } この式は次のように解釈されます。 …

Octopress のセットアップメモ

Setup Octopress まだ実導入していないのですがとりあえずメモしておきます。 1- Octopress を取ってくる git clone git://github.com/imathis/octopress.git octopress cd octopress 2- rbenv 経由で使用したいバージョンのrubyをインストールし、localにセ…