ruby

Ruby のしくみ を読んだ

なぜ読んだか メタプログラミング Ruby を読んだ ので、この勢いで Ruby のことをもっと深く知りたかった。 どうだったか エキサイティングな体験だった。 この本には Ruby が Ruby コードをどうやって実行しているのか、ということが書いてある。字句解析し…

メタプログラミングRuby 第2版 を読んだ

なぜ読んだか いつかは Rails のプラグイン的なものも作ってみたい。興味のあるライブラリのコードを読んだりしているけど、同じようには書けそうにないし、もう少し基礎を身につける必要があると感じていた。 どうだったか Ruby のオブジェクトモデルについ…

波ダッシュをいい感じにする Wavedash という gem を作ってます

これは何か? 波ダッシュのような文字を変換するための ruby 用ライブラリです。 takatoshiono/wavedash · GitHub 対象ユーザー アプリケーションの文字コードは utf-8 だが、MySQL の文字コードが ujis, eucjp-ms, cp932, sjis である アプリケーションの外…

Rails のクエリキャッシュの仕組みを調べた

はじめに Rails のログファイルに CACHE (0.0ms) という行が出力されることがある。 CACHE (0.0ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = '1321459' LIMIT 1 [["id", "1321459"]] ここから以下のことがわかる。 このリクエストでこのクエリが…

rbenv + ruby-build はどうやって動いているのか

rbenv といえば 複数バージョンの Ruby を切り替えて使うための環境を提供してくれる便利なツールとして欠かすことのできないものですが、機会があってそれがどうやって動いているか調べたので、ここに書いておきます。また ruby-build は ruby をインストー…

Mac OS X をアップグレードしたあとに ruby とか入れ直した

仕事で使ってる MacBoox Air の OS がまだ Mountain Lion だったので、ようやく Mavericks にアップグレードした(Yosemite が出てるのにいまさらですけど…)。そしたらいろいろ動かなくなったのでやったことを書いておく。 1. homebrew のシンボリックリン…

RSpec で配列の検証をする方法を整理しておく

問題 RSpec で配列の検証をするのに以下のようなコードを書いた。 describe '#payments' do let(:account) { create(:account) } let!(:payments) { [ create(:payment_foo, account: account), create(:payment_bar, account: account), create(:payment_ba…

Ruby の next 、ついでに Perl も

Ruby の next は引数を取れる next はループのなかで使って、後続の処理をスキップして次のターンに行くというのが役割だと思っていたけど、Ruby では yield 呼び出しの脱出にも next を使う。 nextはもっとも内側のループの次の繰り返しにジャンプします。 …

浮動小数点数による計算のこと

コンピュータによって表現された浮動小数点数は近似値であって正確な数ではない。というのは、プログラマのみなさんなら周知の事実だと思いますが、普段あまり意識することがないため、そのことを忘れていたりする人もいるのではないでしょうか。 近似値であ…

リファクタリング Ruby エディションを読んだ

読んだ理由 Ruby を使い始めて間もない頃に(3ヶ月ほど前)、隣の席にいた同じチームの同僚が「これいいよ」って教えてくれたのがきっかけで、以下のような思いを持って読むことになった。 オリジナルのリファクタリング―プログラムの体質改善テクニック (Ob…

Ruby と Rails を覚えるために約1ヶ月半でやったこと

仕事で Rails を使ったサービスを担当し始めて約1ヶ月半、Ruby と Rails にもだいぶ慣れてきたので、ここまでどうやって勉強してきたか書いておこうと思います。いや、まだ初心者もいいところなのですが、そのうち忘れてしまって今しか書けなそうなので、書…