開発者ブログ

OpenPNE 開発者流のソースコードの追い方 #2 – Rak 編

開発部の海老原です。
ソースコード読むのはホント楽しいですね! ということで技術ネタです。

OpenPNE 開発者流のソースコードの追い方 #1 – ack 編」を書かせていただいたばかりですが、

なぜか開発部プロマネの國忠さんが ack の導入ができないということなので、
他のツールについても触れてみようと思います。

今回紹介するのは、 Rak というツールです。 ack は Perl ですが、こちらは Ruby で書かれています。

It is based on the Perl tool ack by Andy Lester.

とあるように、 ack を基にして作られたツールだけあって、

現時点ではほとんど ack と同じように使うことができます。

「ack をどうしても導入できない!」「Perl 製じゃなくて Ruby 製がいい!」という方は
一度試してみてはどうでしょうか。

■導入方法

Ruby で書かれているだけあって、 Rak は RubyGems で提供されています。
RubyGems で提供されているパッケージを入手するには、 gem コマンドを実行する必要があります。

パッケージ管理システムなどを使って gem をインストールしてください。

Debian の場合だと以下のようにして gem を取得可能です。

# apt-get install rubygems

gem の準備が整ったら、以下のようなコマンドで Rak を入手できます。

# gem install rak

では、ちょっと試してみましょう。

$ rak "foo("

ack よりもちょっと遅い印象がありますが、機能としては遜色ありません。すごい!

■実行例

前回紹介した ack の実行例と同じことを Rak にもやってもらうことにします。

前後の行を表示する

ack では「前後を含めた10行を表示」でしたが、 Rak では「前後5行を含めて表示」となります。

$ rak -C5 "foo("

検索パターンに正規表現を使う

これはまったく ack と同じですね。

$ rak "(class|interface)s+opS+" lib

「条件にマッチする」ファイルの一覧を表示

これも同じ。

$ rak -l " * This file is part of the OpenPNE package" lib

■ ack と Rak 、どちらを使えばいいの?

ということで、基本的にはどちらを使っても同じですが、

僕は ack が完全に肌になじんでしまっているので、 Rak の常用はしないかもしれないです
(気分転換に……ということはあるかも)。
# ack の場合は .ackrc を書くことで初期設定をおこなうことができますが、
Rak にはそういったものがあるんでしょうか? それだったら乗り換えてもいいですね。

ともあれ、 ack や Rak のようなツールを駆使して今日も一日気持ちよくコードとたわむれましょう。
それでは、よいコードリーディングライフを!

OpenPNE�~�蓈���񋟃T�[�r�X�̂��m�点

  • ��K�̓z�X�e�B���O
  • �Z�p�T�|�[�g
  • �J�X�^�}�C�Y
  • OpenPNE Manager
  • ���q���܃T�|�[�g

ページの先頭に戻る