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のプラグイン製作
-, ,

執筆者:

関連記事

Redmine3でのテストあれこれ〜minitest

By: Pedro Ribeiro Simões – CC BY 2.0 目次1 RSpec or Minitest?2 Minitestの基本とか3 Redmine本体のユニットテストを …

Redmineプラグインでマイページにオリジナルのブロックを追加する

目次1 追加方法は簡単2 翻訳3 参考になるプラグイン 追加方法は簡単 app/views/my/blocks以下にパーシャルを作っておいておけばOK www.redmine.org/projects

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

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

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

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

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

目次1 前回2 情報3 ViewHook4 フックの名称を調べる5 Redmine::Hook::ViewListenerを継承したクラスをつくる6 使いたいフックと同じ名称のメソッドを実装する7 i …