template 함수에서 인자로 사용한 템플릿 파일의 경로는 모듈 내 templates 디렉터리에 대응합니다. 정적으로 배포했던 워드프레스 설정 파일 wp-config.php를 기초로 템플릿 파일을 작성합니다. ➊ templates 디렉터리를 생성하고 ➋ files 디렉터리의 wp-config.php를 확장자 .erb를 붙여 templates 디렉터리로 복사합니다. ➌ 템플릿 파일 wp-config.php.erb를 편집합니다.
administrator@vmgate:~/code/environments/production$ mkdir modules/webapp/templates ➊ administrator@vmgate:~/code/environments/production$ cp modules/webapp/files/wp-config.php modules/webapp/templates/wp-config.php.erb ➋ administrator@vmgate:~/code/environments/production$ vi modules/webapp/templates/wp-config.php.erb ➌
퍼팻 언어의 기반인 루비가 제공하는 내장 루비(Embedded RuBy, ERB) 기능을 활용해서 템플릿 내에서 루비 코드를 실행시킵니다. 기호 <%=와 %> 사이에 들어 있는 코드가 루비 언어로 작성된 코드이며, 최종적으로 루비 코드의 실행 결과가 문서에 반영됩니다.
퍼팻 변수를 템플릿으로 전달하고자 scope라는 루비 메서드를 사용했습니다. scope는 키/값 형태의 자료를 반환합니다. 템플릿을 기반으로 wp-config.php를 생성할 때마다 webapp::db 클래스에 정의한 퍼팻 변수 wp_db_name, wp_user, wp_user_password를 조회합니다. 각 변수는 이미 하이라로 특정 값이 할당된 상태이므로 노드에 따라 다른 설정 파일이 만들어집니다.