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でプロジェクトの一覧を表示するプラグインつくった〜projects_table

目次1 機能2 作った理由3 リポジトリ4 同名のプラグイン発見 機能 プロジェクトの一覧を表示する 期日が一番近いバージョンを表示する 最後に更新したチケットを表示する 期日が一番近いチケットを表示 …

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

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

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

目次1 前回2 init.rb3 設定画面4 値の使い方5 情報 前回 Redmine2.5でプラグイン作成のチュートリアルやってみた Redmine2.5でプラグイン作成のチュートリアルやってみた …

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

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

Redmine3におけるインテグレーションテスト、UIテスト

By: Karoly Lorentey – CC BY 2.0 目次1 インテグレーションテスト?UIテスト?2 インテグレーションテスト3 UIテスト インテグレーションテスト?UIテス …