2012-12-01から1ヶ月間の記事一覧

しつこく Hub を読む

しつこく「Hub」を眺めている。語学学習に精読と多読の2つのアプローチがあるように、コードリーディングにも精読というのがあるはずで、試しにそれをやってみている。モヤッする「分かってない感」を感じたら、基本的に分かるまで調べるのが精読。そのため…

git/GitHubを便利に使うHubを少し読む(3)

git/GitHubを便利に使うRuby製ツールのコマンドラインツール「Hub」のソースコードを少し読んだので、あれこれメモ。これとこれの続き。GitHubのAPIをラップする lib/hub/github_api.rb は、クラス定義関連を抜き出すと以下。 module Hub class GitHubAPI mo…

ビットシフトでRubyでも2^n倍の掛け算割り算は速くなる

ruby/src/error.c を眺めていて、RangeErrorの以下の例に、おやっと思った。 /* * Document-class: RangeError * * Raised when a given numerical value is out of range. * * [1, 2, 3].drop(1 << 100) * * <em>raises the exception:</em> * * RangeError: bignum …

git/GitHubを便利に使うHubを少し読む

git/GitHubを便利に使うRuby製ツールのコマンドラインツール「Hub」のソースコードを少し読んだ。コメントが非常に丁寧だし、小さなツールなので、全体を把握しやすい。いろいろ勉強になる。あれこれランダムにメモしてみる。featuresの下にあるcucumberのテ…

git/GitHubを便利に使うHubを少し読む(2)

git/GitHubを便利に使うRuby製ツールのコマンドラインツール「Hub」のソースコードを少し読んだので、あれこれメモ。git/GitHubを便利に使うHubを少し読むの続き。GitHubのAPIをラップする lib/hub/github_api.rb は、クラス定義っぽいところを抜き出すと以…

Ruby標準ライブラリのDigestでの const_missing の用法

Digestには何があったかなと思って、ruby/ext/digestを見てみたら、lib/digest.rbに以下のようなコードあった。Rubyはハッシュ関数として、MD5、SHA1、SHA2、RDM160というのなんかをサポートしてる。BubbleBabbleというマイナーなものも入ってるらしい。で、…

じゃんけんごときにクラスなんて要るのか

CodeIQというプログラミング課題に挑戦するサイトに、Rubyでジャンケンクラスを作れという問題があったのでやってみた。すでに問題は読めなくなっているけど、こんな感じのJankenクラスを作れという。 $ irb > require './janken.rb' > left = Janken.new > …