Xcodeプロジェクト中のコード行数を取得するGemを書いた

RubyはiHeartRadioだとプロダクションコードではあまり使われてないんですが、開発補助系のタスクでは徐々に存在感を増してる感じです。自分で最初から何か書く時はPythonで良いのですけど、他の人が書いたツールを弄ったりするのに必要なのでRubyでコード書き始める事にしました。それでいきなり仕事のコード書くのはアレなので、練習がてらGemを作ってみました。

実装

ココのページをなぞりながら、xcodeproj_utilsと言うのを書きました。開発中手順はかなり簡単でbundle gem fooで雛形を作って実装するだけな感じです。

$ gem install bundler
$ bundle gem xcodeproj_utils
$ cd xcodeproj_utils
$ emacs lib/xcodeproj_utils.rb  # 実装

コードを書いている間はbundle consoleで開発中のモジュールが既にロードされているシェル起動して動作を確認します。

$ bundle console
> XcodeprojUtils::Project.new('/path/to/project', 'target') # 動作確認
> load 'xcodeproj_utils.rb' # モジュール再ロード時はloadコマンド

リリース

リリースはrake releaseと打つだけですが、前もってRubyGems.orgでアカウントを作成して、設定ページにあるcurlコマンドを実行しておきましょう。

$ curl -u taichino https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials
$ rake release # リリース

できたもの

それで何を作ったかというとXcodeのプロジェクト内のソースコードの行数取得するだけのしょうもないモジュールです。コレです。インストールするとxcp_utilsというコマンドが入るので、コマンドラインから以下のようにして使います。

$ xcp_utils lines /path/to/xcodeproj target
144883
$ xcp_utils lines /path/to/xcodeproj target --header_only
35987
$ xcp_utils lines /path/to/xcodeproj target --source_only
108896

あと登録されているソース一覧、”Copy Bundle Resources”でコピーされるリソース一覧を見れます。

$ xcp_utils show /path/to/xcodeproj target --kind source
...
$ xcp_utils show /path/to/xcodeproj target --kind resource
...

まぁ別に何に使えるって訳ではないんですが、コードの規模とか増減をある程度把握しておくのは悪くないんじゃないですかね。

1 thought on “Xcodeプロジェクト中のコード行数を取得するGemを書いた”

  1. Its like you read my mind! You appear to know so
    much about this, like you wrote the book in it or something.
    I think that you could do with some pics to drive the message home a bit, but other than that, this is magnificent
    blog. An excellent read. I’ll definitely be back.

Leave a Reply

Your email address will not be published. Required fields are marked *