こころがホッコリースマートフォン用の表示で見るこころがホッコリーただイカしたRubyistになりたい人生だった。この広告は、90日以上更新していないブログに表示しています。課題おわりにはじめに先日のエントリーで、任意のメソッド呼出を監視し、任意のコードを実行するgem「Okuribito」の作成を報告しました。muramurasan.hatenablog.jpOkuribitoはRuby単体で動くgemで、元々は未使用のメソッドを安全に削除することを目的に作成したgemです。Ruby単体ではなく、Railsプロジェクトに適用されることが多いのではないかと思います。Engineを作れば、メソッド呼出状況の一覧表示・検索などの機能もWebUIで提供できるのではないかと考え、実際に作成してみました。Engineの紹介および使い方の説明をしたいと思います。言い換えれば、まだ一度も呼び出されていないメソッドを炙り出すことができ、安全にコードからメソッドを削除できるようになると言えます。使い方を簡単に説明すると、次のようになっています。監視したいメソッドを登録する(yamlを記述し、配置する)Railsアプリケーションを起動し、運用する。呼出状況のチェック」というループに注力することができます。以下に、Railsチュートリアルのサンプルアプリにおけるメソッド呼出を監視する、という例を通じて、OkuribitoRailsの使い方を説明していきたいと思います。installします。'okuribito_rails'次に、各種設定ファイル配置・書き換えのためのインストールコマンドを実行します。okuribito_rails:install実行すると、以下のタスクが展開されます。OkuribitoRailsが使うmigrationファイルの配置(db/migrate以下)OkuribitoRailsのルーティング追加(config/routes.rbに自動的に追加される)設定ファイルの配置(config/initializers/okuribito_rails.rb)migrationの実行インストールコマンドで追加された分のmigrationを実行します。監視したいメソッドをyamlファイルに記述していきます。(デフォルトの設定では、config/okuribito.ymlにて配置する必要があります)以下のように、クラス名にネストしてメソッド名を記述していきます。メソッド名を記述する際は、クオテーションで囲み、それがクラスメソッドなのかインスタンスメソッドなのかのシンボルを記述する必要があります。'.from_users_followed_by'設定ファイルの変更(任意)config/initializers/okuribito_rails.rbはデフォルトで以下の設定になっているので、必要に応じて変更します。["test"]endsetting_path監視したいメソッドを記述したyamlのパスを書きます。once_detecttrueにすると、メソッド呼び出し検出時の、呼出履歴の登録をRailsアプリケーション起動中に一度だけにします。等)を一切見れなくします。production環境ではWebUIを閉じたい、といった場合に対応することができます。prohibit_observe配列で指定した環境下で、メソッド呼び出しの監視をしなくなります。staging環境やtest環境ではメソッド呼び出しの監視をしたくない、といった場合に対応することができます。運用OkuribitoRailsをインストールしているRailsアプリケーションは、以下の動作をするようになります。アプリケーション起動時、yamlファイルに記述した監視メソッドをDBに登録する。アプリケーション実行中、監視メソッドが呼び出されると、その情報をDBに登録する。して蓄積された情報は、WebUIを通じて、それぞれ以下の通り閲覧することができます。アクセスすると、以下の通り、現在のメソッド呼び出し状況を閲覧することができます。監視中のメソッド一覧が表示され、監視開始日時と、呼出日時を確認することができます。この例では、User#profileがまだ呼び出されていないことがわかり、今後も未呼出が続くようであれば、コードからメソッドを削除しても良いだろうと判断するこができます。アクセスすると、以下の通り、これまでのメソッド呼出履歴を閲覧することができます。呼び出された日時と、その時に呼び出された箇所が記録されているため、どこのコードがまだメソッドを利用しているのか確認することができます。最低限の機能は作ることができたと思っていますが、使い勝手を良くするために、今後は以下の機能をリリースしたいと考えています。検索機能メソッド名や、日時を条件に検索(絞り込み)できるようにする機能の提供。メソッド監視日数の表示メソッドの監視開始から経過した日数を表示・検索できるようにする機能の提供。上記の条件で、yamlファイルの内容を書き換えるコマンドの提供。上記の条件で、yamlファイルの内容を書き換えるコマンドの提供。Engine(gem)です。コードが汚いのは、ただただ申し訳なさしかありませんが、機能的には有用なものが作れたのではないかと思っています。»プロフィールid:muramurasan組み込み系のSI屋から、Railsを扱うWeb系のベンチャーに転職した筆者が、日々ミジンコなりに情報を綴るブログ。SI屋からWeb業界に転職したい、真面目すぎる方へ贈る3つのこと。月別アーカイブはてなブログをはじめよう!muramurasanさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。