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 …

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

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

Selenium IDEからRubyのテストケースを書き出す

By: Kenny Louie – CC BY 2.0 目次1 Selenium IDE2 Selenium IDEのインストール3 Selenium IDEの立ち上げ方4 はじめてのSe …

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

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

RedmineプラグインにWiki機能をつける

By: Cambodia4kids.org Beth Kanter – CC BY 2.0 目次1 環境2 フォーム3 表示4 プレビュー 環境 Wiki機能というよりは、Redmineの …