Perl (Mojolicious) を使って web アプリ開発に挑戦 (第8回 その4)
第8章 Mojolicious ベースにリファクタリングをする(その4)
前回でコントローラーの切り離しまですすみました。 今回は細かい全体の調整をしてみたいと思います。
8.4 全体の調整
8.4.1 コントローラーの調整
モデル同様共通化用のメソッド記述用のファイルを用意
% touch lib/BeginningMojo/Controller/Base.pm
lib/BeginningMojo/Controller/Base.pm
package BeginningMojo::Controller::Base; use Mojo::Base 'Mojolicious::Controller'; 1;
継承関係をととのえる
lib/BeginningMojo/Controller/Bulletin.pm
package BeginningMojo::Controller::Bulletin; use Mojo::Base 'BeginningMojo::Controller::Base'; use Mojo::Util qw(trim); # ...省略 1;
テストコードを実行確認
% docker-compose exec web carton exec -- prove
8.4.2 モジュールの調整
モジュール読み込みのパスを整える
script/beginning_mojo
#!/usr/bin/env perl use strict; use warnings; use Mojo::File 'curfile'; use lib curfile->dirname->sibling('lib')->to_string; use Mojolicious::Commands; Mojolicious::Commands->start_app('BeginningMojo');
テストコードの記述を統一
t/bulletin.t
t/remove.t
use Mojo::Base -strict; use Test::More; use Test::Mojo; use Mojo::Util qw{dumper}; # テストコードで読み込むものを統一しておく
テストコードを実行確認(コマンドが変わったことに注意)
% docker-compose exec web carton exec -- prove --lib
bin/compose-cmd-test.bash
#!/usr/bin/env bash carton exec -- prove --lib
8.4.3 テンプレートの調整
テンプレートのディレクトリ構造を修正
(通常はコントローラーのクラス名のディレクトリ構造に合わせる) % mkdir templates/bulletin % mv templates/create.html.ep templates/bulletin/create.html.ep % mv templates/index.html.ep templates/bulletin/index.html.ep % mv templates/list.html.ep templates/bulletin/list.html.ep
コントローラーを整える
lib/BeginningMojo/Controller/Bulletin.pm
# ... sub index { # ... $self->render( template => 'bulletin/index' ); } sub list { # ... $self->render( template => 'bulletin/list' ); } sub create { # ... $self->render( template => 'bulletin/create' ); } # ...
テストコードを実行確認
% docker-compose exec web carton exec -- prove --lib
8.4.4 まとめ
- 今回の内容は下記の github 参考資料でみれます。
- https://github.com/Becom-Developer/beginning-mojo/tree/master/chapter8/section4
8.4.5 次回
今回でMojolicious ベースの構造体に変更するまでがおわりました。
次回は環境設定周りをやってみたいと思います。
コメント
0 件のコメント :
コメントを投稿