ruby
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 コマンドの違いは -E オプションで渡すものが RACK_ENV になるのか、RAILS_ENV になるのかがメインのよう。 でも ActiveAdmin を使うときなどは unicorn_rails じゃなかったりするようだし、Rails アプリケーションの場合…
アプリサーバー対決 パート1:主なRubyアプリケーションサーバーの機能比較 [和訳] - Engine Yard Blog を読んで、Unicorn がわかった。 高速クライアント用と呼ばれる理由 ホットデプロイをどのように実現しているか Unicorn はmasterプロセスとそれをfork…
Ruby gem の Faker が便利だったのでメモしておきます。 この gem はTESTをする時などに用意したくなる fixture などを作成するときなどに活躍します。 文字数指定で validation しているコードを TEST したいときや email アドレスのフォーマットに従ってい…
Ruby における演算子 && と and は同じ意味を持ちますが優先度が異なります。(Perlについても同様) これによって使うべきシーンがそれぞれ異なりますので、ここにはその辺りの使い分けについて書いておきます。 定義 定義は && も and も「左辺を評価し、真…
RSpec の expect において expect() expect {} はそれぞれ値を引数として取得するか、ブロックつきメソッドを引数とするかが異なります。 expect() これにより、expect() ではすでに取得済みのレコードがあり、それが予期する値と等しいかどうかなどをTESTす…
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 の言語仕様をざっとキャッチアップするのに最適な本な気がします。 自分は本を読んだ後に書かないと知識が残留しない方なので、 自分忘備録として個人的に便利だっ…
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 を使うと思います。 しかしこれらは厳密にいうと異なります。 その違いは 結合強度 です。 { ... } の場合 some_method other_method { ... } この式は次のように解釈されます。 …
Setup Octopress まだ実導入していないのですがとりあえずメモしておきます。 1- Octopress を取ってくる git clone git://github.com/imathis/octopress.git octopress cd octopress 2- rbenv 経由で使用したいバージョンのrubyをインストールし、localにセ…