Redmineのプラグイン製作

Redmineプラグインで既存のモデルを修正する

投稿日:2014年6月14日 更新日:

プラグイン インターナルを参考にした

Rubyのモジュール

モジュールの使い方を簡単におさらいしておくと捗るかも

モジュールの特徴は2点

  • インスタンスを生成することはできない
  • 継承することはできない

モジュールの用途

  • 名前空間をつくる
  • モジュールのメソッドを、あるクラスのインスタンスメソッドとして取り込む
  • モジュールのメソッドを、あるオブジェクトの特異オブジェクト(クラス・メソッド)として取り込む
  • モジュール関数を定義して使う

モジュールの定義〜module

モジュールの使い方〜include

特異メソッド(クラス・メソッド)としてモジュールを使う〜extend

オブジェクト.extend モジュール名 とすれば特異メソッド、クラス内で、 extend モジュール名 とすればクラス・メソッドになる

その他詳しくはPerfect Rubyの129ページ以下を読む

既存のモデルを拡張するRedmineプラグイン

lib以下にパッチ用のファイルをつくる

モジュールを作ってincludeする

init.rbでrequire_dependencyと書く

ClassMethodsとInstanceMethodsを書く

Railsでは慣例的に次のように書くことが多いみたい
クラス・メソッドはClassMethodsに、インスタンス・メソッドはInstanceMethodsに書く
関連性を書き足す場合は、class_evalを使うみたい
includedはモジュールがインクルードされた後に呼び出されるメソッド

マイグレーションファイルをつくる

rake redmine:plugins:migrate すること

ApplicationHelperの書き換え

alias_method_chainではうまく書き換えられず、Rubyのprependを使った
RedmineでApplicationHelperの既存のメソッドを書き換えるには?

-Redmineのプラグイン製作
-, ,

執筆者:

関連記事

Redmineでユーザーの表示を苗字、名前の順にするプラグインをつくった〜redmine_japanese_user_format

By: Takashi .M – CC BY 2.0 目次1 内容2 補足 内容 プラグインというほどのものでもなくユーザーのフォームとインデックスを苗字、名前の順番にします. githu …

Redmine2.5でプラグイン作成のチュートリアルやってみた4〜テスト

By: Beverly & Pack – CC BY 2.0 目次1 前回まで2 テストの設定3 データベースの準備4 テストの実行5 最初のテスト 前回まで Redmine2.5 …

Rails4になったRedmineはprotected_attributesを使っているので注意が必要

By: Renaud Camus – CC BY 2.0 Rails4になったRedmineはprotected_attributesというgemを使っていますので、Rails3時代と同じ …

Redmineプラグインのviewを作るための情報あれこれ

By: amanderson2 – CC BY 2.0 目次1 環境2 サイドバーへの表示3 領域 box4 動作などの領域 contextual5 アイコン6 nodata7 テーブル8 …

Redmine2.5でプラグイン作成のチュートリアルやってみた

目次1 参考2 環境3 デベロップメント環境のRedmineを準備4 プラグインを作成5 init.rb6 モデルを作成する7 コントローラーを作成してみる8 ビューを作成9 ルートを作成10 動作確 …