Template View Helper
view 를 구성할때 매번 copy & paste 하기 귀찮아서 Helper 를 만들고 커맨드라인으로 쉽게 재사용하기 위해서 사용합니다.
나름 규약이 있습니다.
-
app의
myapp_create.pl
과Catalyst::Helper::View::TTSilex
를 이용해서 view 를 만든다. -
Foo
라는 Controller 를 만들었으면$PROJECT_ROOT/templates/<VIEWNAME>/src/foo
디렉토리에<ACTION>.tt
를 만듭니다.# `Foo::index` 면 $PROJECT_ROOT/templates/<VIEWNAME>/src/foo/index.tt
-
이렇게 하면 자동으로 자신이 사용할 template 이 설정됩니다.
sub action :Local { my ($self, $c) = @_; # Catalyst 에서 template 을 설정하기 위해 변수명에 # 현재 action 을 자동으로 할당해 주기 때문에 규칙만 지켜주면 # 설정할 필요가 없습니다. # template 변수에 controller/action.tt 로 자동할당됩니다. # $c->stash->{template} = 'action.tt' }
저랑 도형님은 이걸 사용하고 진님은 사용안합니다. 그냥 다른 프로젝트에서 copy & paste 하는 것 같습니다.
$ tree -d root/templates/
root/templates/
└── bootstrap
├── lib
│ ├── config
│ └── site
└── src
├── casereportform
├── gen
│ ├── ...
├── login
├── orgs
├── studies
└── subjects
Catalyst 에서 app 의 create.pl 사용방법은 아래와 같습니다.
$ script/create.pl [controller|model|view] NAME HELPER
그래서 처음에 view 를 구성하기 위해 아래와 같이 했습니다.
$ script/evid_web_create.pl view Bootstrap TTSilex
Bootstrap
이란 이름의 view 를 가지고 Default 파일이 자동으로 생성됩니다.
그럼 아래와 같은 디렉토리가 만들어집니다.
$ tree -d root/templates/
root/templates/
└── bootstrap/
├── lib/
│ ├── config/
│ │ └── main
│ └── site/
│ │ ├── footer
│ │ ├── header
│ │ ├── html
│ │ ├── layout
│ │ └── wrapper
└── src/
root/static/scripts/
root/static/sass/
root/static/css/
root/config.rb
install 해서 사용해야 합니다. 그래야 view 를 구성하는데 필요한 리소스들이 @INC 밑에 어딘가에 포함되거든요.
$ git clone git://github.com/aanoaa/Catalyst-Helper-View-TTSilex.git
$ cd Catalyst-Helper-View-TTSilex/
$ dzil build # required Dist::Zilla
$ cd Catalyst-Helper-View-TTSilex-0.0.1/
$ make && make install
$ cd .. && dzil clean # cleanup
$ script/myapp_create.pl view Default TTSilex
# Default 란 이름의 view 가 TTSilex Helper 를 이용해서 만들어 졋습니다.
jenkins 와 같은 ci 서버에서 쉽게 모듈 dependency 문제를 해결하기
위해서는 Carton
과 같은 모듈이
필요합니다. Catalyst-Helper-View-TTSilex 와 같은 목적으로 만든 helper 입니다.
Generate run and test files based on "carton exec" for jenkins
$ script/myapp_create.pl Carton
# add dependencies to Makefile.PL
$ carton install
$ ./run # required app.psgi
$ ./test # generate some test report for jenkins
# inspire by github/gitignore
blib/
.build/
_build/
cover_db/
inc/
Build
Build.bat
.last_cover_stats
Makefile
Makefile.old
MANIFEST.bak
META.yml
MYMETA.yml
nytprof.out
pm_to_blib
# custom
local/
.sass-cache/
tt_cache/
.carton/
*.log
session
MYMETA.json
carton.lock
이건 헬퍼 없습니다. 프로젝트마다 손으로 복사합니다.
https://gist.github.com/2761721
이건 말로 풀어야..