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