開発者ブログ

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

            <p>開発部の海老原です。<br />
            ソースコード読むのはホント楽しいですね! ということで技術ネタです。</p>
            <p>「<a href="https://www.tejimaya.com/archives/1362/">OpenPNE 開発者流のソースコードの追い方 #1 - ack 編</a>」を書かせていただいたばかりですが、<br />

            なぜか開発部プロマネの國忠さんが ack の導入ができないということなので、<br />
            他のツールについても触れてみようと思います。</p>
            <p>今回紹介するのは、 <a href="http://rak.rubyforge.org/">Rak</a> というツールです。 ack は Perl ですが、こちらは Ruby で書かれています。</p>
            <blockquote><p>It is based on the Perl tool ack by Andy Lester.</p></blockquote>
            <p>とあるように、 ack を基にして作られたツールだけあって、<br />

            現時点ではほとんど ack と同じように使うことができます。</p>
            <p>「ack をどうしても導入できない!」「Perl 製じゃなくて Ruby 製がいい!」という方は<br />
            一度試してみてはどうでしょうか。</p>
            <h3>■導入方法</h3>
            <p>Ruby で書かれているだけあって、 Rak は RubyGems で提供されています。<br />
            RubyGems で提供されているパッケージを入手するには、 gem コマンドを実行する必要があります。<br />

            パッケージ管理システムなどを使って gem をインストールしてください。</p>
            <p>Debian の場合だと以下のようにして gem を取得可能です。</p>
            <blockquote><p><code># apt-get install rubygems</code></p></blockquote>
            <p>gem の準備が整ったら、以下のようなコマンドで Rak を入手できます。</p>
            <blockquote><p><code># gem install rak</code></p></blockquote>
            <p>では、ちょっと試してみましょう。</p>

            <blockquote><p><code>$ rak "foo("</code></p></blockquote>
            <p></p>
            <p>ack よりもちょっと遅い印象がありますが、機能としては遜色ありません。すごい!</p>
            <h3>■実行例</h3>
            <p><a href="https://www.tejimaya.com/archives/1362/">前回</a>紹介した ack の実行例と同じことを Rak にもやってもらうことにします。</p>
            <h4>前後の行を表示する</h4>

            <p>ack では「前後を含めた10行を表示」でしたが、 Rak では「前後5行を含めて表示」となります。</p>
            <blockquote><p><code>$ rak -C5 "foo("</code></p></blockquote>
            <p></p>
            <h4>検索パターンに正規表現を使う</h4>
            <p>これはまったく ack と同じですね。</p>
            <blockquote><p><code>$ rak "(class|interface)s+opS+" lib</code></p></blockquote>

            <p></p>
            <h4>「条件にマッチする」ファイルの一覧を表示</h4>
            <p>これも同じ。</p>
            <blockquote><p><code>$ rak -l " * This file is part of the OpenPNE package" lib</code></p></blockquote>
            <p></p>
            <h3>■ ack と Rak 、どちらを使えばいいの?</h3>
            <p>ということで、基本的にはどちらを使っても同じですが、<br />

            僕は ack が完全に肌になじんでしまっているので、 Rak の常用はしないかもしれないです<br />
            (気分転換に……ということはあるかも)。<br />
            # ack の場合は .ackrc を書くことで初期設定をおこなうことができますが、<br />
            Rak にはそういったものがあるんでしょうか? それだったら乗り換えてもいいですね。</p>
            <p>ともあれ、 ack や Rak のようなツールを駆使して今日も一日気持ちよくコードとたわむれましょう。<br />
            それでは、よいコードリーディングライフを!</p>

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

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

ページの先頭に戻る