活動
2018/07/21から2018/08/19まで
2018/08/13
- 高徹 21:46 機能 #88: acts_as_listをacts_as_positionedで置き換え
- 並べ替え操作をすると、並び替え対象行の並び替えアイコンがぐるぐるになって、しばらくすると「0」だけ書かれたダイアログが表示される。
管理 > トラッカーで表示されるトラッカーを並べ替え操作したときの通信を見ると(Firefoxで、Ctrl + Shift + Iで開発画面を表示、ネットワークで状況確認)
要求URL: http://server:3000/trackers/2
要求メソッド: PUT
ステータスコード:200
フォームデータは、@tra...
2018/08/12
- 高徹 20:54 機能 #88: acts_as_listをacts_as_positionedで置き換え
- acts_as_positioned の使い方調査~Trackerでの利用形態
* app/models/tracker.rb - 高徹 20:35 機能 #88: acts_as_listをacts_as_positionedで置き換え
- acts_as_positioned の使い方調査~ Boardモデルでの利用形態
* app/models/board.rb で
2018/08/10
- 高徹 07:52 機能 #75: Redmine Glossary プラグインを一から作成する
- 機能テストで、assert_redirect_to の記述について
GlossaryCategoriesControllerTestにおいて、destroyアクションのテストを記述・実行していた際
2018/07/29
- 高徹 19:21 機能 #83: Redmine Glossaryプラグインをリファクタリングする
- h4. リファクタリングの試み(第1回)
結果:破綻
作業経緯:
まず、[#86]から着手することとし、モデルクラスのクラス名およびファイル名の変更、次にユニットテストを通すことを目標に修正を実施した。
データベースのテーブル名を変更するマイグレーションスクリプトを作成し、モデル内、ユニットテスト内、fixtureのクラス名を修正。
コントローラーの修正に入るところで、ルーティング設定、アクションの定義、などなどで修正範囲が拡大し破綻。
* リン... - 高徹 14:37 機能 #83: Redmine Glossaryプラグインをリファクタリングする
- リファクタリング作業の主幹となるブランチを作成した。
- 高徹 14:26 機能 #83 (進行中): Redmine Glossaryプラグインをリファクタリングする
- 高徹 01:39 機能 #88 (却下): acts_as_listをacts_as_positionedで置き換え
- acts_as_listはRedmine 4.0で除外されたので、Redmine 4.0対応[#81]では外部gemとしてacts_as_listを追加指定した。
Redmine 4.0本体には、lib/redmine/acts/positioned.rb ファイルでacts_as_positionedが提供される(?)ので、これを利用するように変更する。
Redmine本体のモデルクラスでもいくつかでacts_as_positionedを使用している。
@B...
2018/07/26
2018/07/23
- 高徹 22:40 機能 #87 (却下): リソースルーティングの導入
- Railsで推奨されるルーティング設定はRESTfulなresources、resourceの設定で、それぞれデフォルトで生成されるアクションとHTTPメソッドの組み合わせが決まっている。
現行のGlossaryプラグインは、RESTfulなresources、resourceの設定とは異なるアクションとHTTPメソッドの組み合わせを使っているので、理解が難しくなっている面がある。
例えば、リソース(モデル)を生成するときは、resourcesで定義した場合、
... - 高徹 21:58 機能 #86 (却下): テーブル名(モデル名)の衝突可能性低減
- Redmineのデータベースは本体・プラグインを含めフラットなため、名前の付け方に注意をしないとRedmine本体のバージョンアップや別なプラグインの導入でデータベースのテーブル名が衝突することがあります。
そこで、プラグインにちなむテーブルには接頭辞glossaryを付けることとします。
|_. No. |_. 現行のテーブル名|_. リファクタリング後のテーブル名|
|=. 1 |terms |glossary_terms... - 高徹 06:56 機能 #81: Redmine 4.0でglossary pluginを動くようにする
- glossary_controller のテストで nilに対するempty?呼び出しで例外発生
* fixtures/terms.yml - 高徹 06:51 リビジョン fa764aa1 (redmine_glossary): Make minimal functional test for glossary_controller
2018/07/22
- 高徹 22:48 リビジョン f9738d96 (redmine_glossary): Make glossary_styles controller test
- 高徹 18:15 機能 #84: 不要ファイルの削除
- app/views/glossary_styles/edit.html.erb
これは中身がダミーなので不要ファイルでは? - 高徹 05:15 機能 #84: 不要ファイルの削除
- app/helpers/term_categories_helper.rb はモジュールの枠だけ定義されているので不要
- 高徹 18:13 機能 #81: Redmine 4.0でglossary pluginを動くようにする
- glossary_styles_controller#edit のロジックが複雑な件について
|/2. anonymous |params[:clear]指定あり |session[:glossary_style] = nil |
|params[:clear]指定なし |session[:glossasy_style] = params[:glossary_style] |
glossary_styles_control... - 高徹 08:32 機能 #81: Redmine 4.0でglossary pluginを動くようにする
- 用意されているテスト・フィクスチャの内容確認
* term_categories.yml
|_. id |_. name|_. project_id|_. position|
| 1 | one | 1 | 1 |
| 2 | two | 1 | 1 |
* terms.yml
|_. id |_. name |_. project_id|_. category_id|
| 1 | term one | 1 | NULL |
| 2 | ... - 高徹 05:09 機能 #81: Redmine 4.0でglossary pluginを動くようにする
- コントローラーのテスト(ActiveController::TestCase継承で)
まず、一番単純なモデルであるカテゴリのコントローラーのテストを行う。
indexアクションのテストが実行できるまでの流れをはてな日記に記載。
http://d.hatena.ne.jp/torutk/20180721/p1
- 高徹 15:29 機能 #85 (却下): コントローラーのbefore_actionでプロジェクトを取得する際はRedmineのAPIを呼ぶ
- コントローラーのbefore_actionでプロジェクトを取得するロジックを、各コントローラーのprivateメソッドに同じコードを記述するのではなく、Redmineで用意するメソッドを呼ぶ。
例)term_categories_controller.rb - 高徹 12:25 リビジョン 1be3f3a2 (redmine_glossary): Add functional test of destroy action for term_categories
- 高徹 07:08 リビジョン b25bf663 (redmine_glossary): Make functional test for term_categories with edit and change_order action