이루비
eRuby| 안정된 릴리스 | 1.0.5 / 2004년 12월 14일 ( |
|---|---|
| 유형 | 템플릿 엔진 |
| 면허증. | GPL 및 LGPL |
eRuby(Embedded Ruby)는 Ruby를 텍스트 문서에 삽입하는 템플릿 시스템입니다.ASP, JSP, PHP 및 기타 서버 측 스크립트 언어와 유사한 HTML 문서에 루비 코드를 포함시키는 데 자주 사용됩니다.eRuby의 템플링 시스템은 루비 코드와 플레인 텍스트를 결합하여 흐름 제어와 변수 치환을 제공하여 [1]유지보수가 용이합니다.
Ruby on Rails의 View 모듈은 브라우저에 응답 또는 출력을 표시합니다.가장 간단한 형태에서 보기는 일부 정적 콘텐츠를 포함하는 HTML 코드일 수 있습니다.대부분의 응용 프로그램에서는 정적 콘텐츠만으로는 충분하지 않을 수 있습니다.대부분의 레일 애플리케이션은 컨트롤러(동작 방법)에 의해 작성된 동적 콘텐츠를 뷰에 표시해야 합니다.이는 Embedded Ruby를 사용하여 동적 콘텐츠를 포함할 수 있는 템플릿을 생성함으로써 가능합니다.Embedded Ruby를 사용하면 보기 문서에 루비 코드를 삽입할 수 있습니다.이 코드는 런타임에 코드를 실행한 결과 적절한 값으로 대체됩니다.그러나 보기 문서에 코드를 삽입할 수 있기 때문에 MVC 프레임에 존재하는 명확한 분리를 브리징할 위험이 있습니다.따라서 개발자는 자신의 애플리케이션의 [2]모델, 뷰 및 컨트롤러 모듈 간에 명확한 책임 분리가 있는지 확인해야 합니다.
사용.
eRuby는 Ruby 코드를 한 쌍에 포함시킬 수 있습니다.<%그리고.%> 구분 기호로 지정합니다.그런 다음 이러한 삽입 코드 블록이 일괄 평가됩니다(평가 결과로 대체됩니다).웹 페이지 작성 외에 XML 문서, RSS 피드 및 기타 형식의 구조화 텍스트 파일 작성에도 eRuby를 사용할 수 있습니다.eRuby는 템플릿을 기반으로 정적 파일을 동적으로 생성합니다.eRuby의 이러한 기능은 ERB 라이브러리에서 찾을 수 있습니다.
ERB 템플릿에서 사용되는 태그마커의 종류는 다음과 같습니다.
- 식 태그
- 실행 태그
- 댓글[3] 태그
식 태그
<%= %>: 태그가 식을 감싸고 있음을 나타냅니다.이러한 태그는 시작 태그 딜리미터로 시작하여 등가 기호로 시작하고 끝 태그 딜리미터로 끝납니다.템플릿을 렌더링하는 동안 이 코드 조각이 코드 결과로 대체됩니다.평가된 결과가 문자열이 아닌 경우 렌더링되기 전에 문자열로 변환됩니다.예를 들어 다음과 같습니다.
요구하다 'erb' x = 500 템플릿 = ERB.신규("x의 값은 다음과 같습니다.< % = x % >") 놓다 템플릿.결과(바인딩) 결과 텍스트는 다음과 같습니다.x 값은 500[1] 입니다.
실행 태그
<% %>: 이러한 태그로 둘러싸인 코드를 스크립트릿이라고 부릅니다.이러한 태그의 코드가 실행되어 스크립트릿 대신 결과가 대체됩니다.이러한 태그는 일치해야 합니다.<% end %>tag는 기능 블록의 끝을 나타냅니다.예를 [4]들어 다음과 같습니다.
<ul> <% 4.times do %> <li> 목록 항목 </li> <% end %> </ul>위의 예에서는 텍스트 목록 항목이 4번 인쇄됩니다.스크립트릿은 자체 텍스트를 생성하지 않고 여러 번 실행되도록 동봉된 문을 만들 뿐입니다.상기 코드의 출력:
- 리스트 항목
- 리스트 항목
- 리스트 항목
- 리스트 항목
코멘트 태그
<%# %>: 코멘트 태그의 내용은 출력에 렌더링되지 않습니다.이러한 태그는 오픈태그 딜리미터로 시작하여 해시 기호로 시작하여 종료태그 딜리미터로 끝납니다.댓글 태그의 예를 [5]다음에 나타냅니다.
<%#루비코드 %>
이것은 루비의 댓글과 같습니다.# 뒤의 모든 Ruby 코드는 무시되고 아무것도 생성되지 않습니다.
기타 태그
eRuby에서 공통되는 다른 것들은 단순히 Ruby에서 흔히 볼 수 있는 것들입니다. 예를 들어, 문자열 치환:#{string_name}Perl이나 PHP와 같은 언어에서도 비슷합니다.
eRuby 의 새로운 행은, 엔드 태그 딜리미터의 선두에 하이픈을 추가하는 것으로 억제할 수 있습니다.예를 들어 다음과 같습니다.
% 미만2.시대 하다 - % > <%= @name %> % 미만 끝. - % > 상기 코드의 출력에서는 이름 값이 같은 [1][3]행에 2회 인쇄됩니다.
실장
eRuby에는 다음과 같은 몇 가지 구현이 있습니다.
- ERB
- 에러비스
- 불타오르다
얼버무리다
erb는 순전히 루비 프로그래밍 언어로 작성된eRuby의 구현으로 루비 표준 [2]라이브러리에 포함되어 있습니다.
템플릿은 ERB 개체를 사용하여 작성된 코드를 실행함으로써 생성할 수 있습니다.간단한 예를 다음에 나타냅니다.
요구하다 'erb' x = 400 심플한 = "x의 값은: <%= x %>입니다." 렌다라 = ERB.신규(심플한) 놓다 산출량 = 렌다라.결과(바인딩) 결과는 다음과 같습니다.x 값은 400 입니다.
ERB 오브젝트를 사용하지 않는 다음 코드를 사용하여 동일한 작업을 수행할 수 있습니다.
x = 400 스트링 = "x의 가치는 다음과 같습니다.#{x}" 놓다 스트링 위의 코드 스니펫은 모두 같은 출력을 생성합니다.그러나 첫 번째 코드 스니펫에서 2행과 3행, 두 번째 코드 스니펫에서 1행과 2행으로 바꾸면 어떻게 됩니까?첫 번째 스니펫은 다음과 같은 코드로 변경됩니다.
요구하다 'erb' 심플한 = "x의 값은: <%= x %>입니다." x = 400 렌다라 = ERB.신규(심플한) 놓다 산출량 = 렌다라.결과(바인딩) 이 경우에도 동일한 출력이 생성됩니다. 즉, x 값은 400입니다.
두 번째 코드 스니펫은 다음 코드로 변경됩니다.
스트링 = "x의 가치는 다음과 같습니다.#{x}" x = 400 놓다 스트링 위 코드는 실행되지 않습니다.이는 첫 번째 행이 실행될 때 x의 값을 모르기 때문입니다.따라서 ERB 오브젝트를 사용하는 주된 이유는 특정 시간에 존재하지 않을 수 있는 변수와 메서드를 바인딩함으로써 템플릿을 미리 작성하는 것입니다.템플릿은 ERB 오브젝트에서 결과가 호출되었을 때만 처리됩니다.개체의 인스턴스 메서드 및 인스턴스 변수에 액세스하기 위해 ERB는 바인딩 개체를 사용합니다.오브젝트의 변수 및 메서드에 대한 액세스는 각 루비 클래스에 존재하는 프라이빗 바인딩 오브젝트에 의해 주어진다.클래스의 메서드 내에서 메서드와 변수에 쉽게 액세스할 수 있습니다.그러나 다른 클래스의 변수에 액세스하려면 해당 클래스는 공용 메서드를 통해 바인딩 개체를 노출해야 합니다.다음은 예를 [2][4]제시하겠습니다.
학급 ERBExample(ERBExample) attr_accessor: syslog1 # 바인드를 사용한 클래스 변수 접근 방어하다 표현하다() 렌다라.결과(바인딩) 끝. 방어하다 초기화하다(변수 1) @param1 = 변수 1 끝. # private binding() 메서드를 표시합니다. 방어하다 get_binding 바인딩() 끝. 끝. 예 = ERBExample(ERBExample).신규(변수 1) 렌다라 = ERB.신규(템플릿) 놓다 산출량 = 렌다라.결과(예.get_binding) 위의 예에서 알 수 있듯이 클래스 ERBExample의 바인딩 오브젝트를 공개하고 있습니다.또한 바인딩 개체를 사용하여 메서드 중 하나 내에서 클래스의 변수와 메서드에 액세스했습니다.
ERB의 new() 메서드
ERB 객체의 새로운 메서드에는 2개의 파라미터가 더 필요합니다.두 번째 파라미터는 안전레벨을 지정합니다.두 번째 매개 변수에 숫자(최대값 = 4)를 지정하면 템플릿을 다른 스레드에서 실행할 수 있습니다.이 숫자의 값에 따라 안전 수준이 결정됩니다.최대 분리 수준에서는 바인딩 개체가 신뢰할 수 있는 것으로 표시되지 않는 한 ERB는 이 개체를 사용할 수 없습니다.세 번째 파라미터는 옵션 수식자를 지정합니다.출력에 새 줄을 추가하는 것을 제어하는 데 사용할 수 있습니다.예를 들어 태그 종료 후 ERB가 새로운 행을 출력하지 않도록 하기 위해 다음과 같이[3][4] ERB 개체를 만듭니다.
렌다라 = ERB.신규(템플릿, 3, '>') 세 번째 파라미터만 제공하고 두 번째 파라미터를 무시하려면 두 번째 파라미터 입력으로0 을 사용합니다.
ERB에는 템플릿 렌더링에 사용할 수 있는 다른 많은 메서드가 있습니다.ERB 오브젝트에 의해 공개된API의 전체 목록은 참조 섹션에 있는 ERB 매뉴얼을 참조하십시오.
명령줄에서의 ERB 실행
앞서 설명한 바와 같이 erb는 템플릿 생성에 사용됩니다.웹 페이지 또는 기타 텍스트 파일을 생성하는 데 자주 사용됩니다.일반적으로 출력을 원하는 파일에 푸시하려면 erb가 필요합니다.이를 위해 명령줄에서 제공되는 리다이렉션 기능을 사용하여 출력을 표준 출력에 [3]인쇄하지 않고 파일로 리다이렉트할 수 있습니다.
erb sample1.erb.txt > my_view.http.erb위의 예에서는 출력이 my_view.html.erb 파일로 리다이렉트 됩니다.
서드파티 라이브러리의 링크는 -r 옵션을 사용하여 라이브러리의 이름을 지정하여 실행할 수 있습니다.이 기능을 기억하기 위해서는 -r 옵션과 같은 기능을 하는 Ruby 키워드 요건을 기억할 수 있습니다.다음 예제에서는 IPAddr 라이브러리를 사용합니다.
erb - r IPAddr sample1 。txt.erb > my_view.erb.erb앞 절에서 안전 수준에 대해 언급했듯이 -S 옵션을[3] 사용하여 명령줄 인수로 안전 수준을 지정할 수 있습니다.
erb - S 4 sample1.erb.txt > my_view.http.erb에러비스
erubis는 루비 및 Java에서 구현된 eRuby의 구현입니다.홈페이지에 따르면 eRuby 및 ERb보다 빠르게 실행되며 유효한 XML을 허용하는 대체 태그를 포함한 몇 가지 유용한 옵션이 있습니다.
불타오르다
ember는 Linux용 eRuby의 순수한 Ruby 구현입니다.eRuby 템플릿을 디버깅할 수 있고 컴포넌트가 향상되며 강력한 단축형 eRuby 디렉티브가 제공됩니다.
다른 구현 태그 비교
아래 표는 위의 각 구현에서[4][6][7] 사용 가능한 태그를 비교한 것입니다.
단순 표현식 태그<%= %> | 단순 실행 태그<% %> | 심플 코멘트 태그<%# %> | 태그 패턴 설정 기능 | 태그의 짧은 표기법 | <%~ %> | <%+ %> | <%< > | <% > |
|---|---|---|---|---|---|---|---|---|
| 네. | 네. | 네. | 아니요. | 네.<%xy%>라고 쓸 수 있다%xy. | 아니요. | 아니요. | 아니요. | 아니요. |
| 네. | 네. | 네. | 예, 태그 패턴을 원하는 대로 변경할 수 있습니다. 전 - | 네. 태그 패턴을 변경할 수 있습니다. | 아니요. | 아니요. | 아니요. | 아니요. |
| 네. | 네. | 네. | 아니요. | 네.<%xy%>라고 쓸 수 있다%xy. | 태그의 내용은 eRuby 템플릿으로 평가됩니다. | 태그의 내용은 Ruby 코드로 평가되며, 읽기, 평가 및 렌더링되는 Ruby 템플릿 파일을 가리키는 경로가 될 것으로 예상됩니다. | 와 같다<%+ %>그러나 파일 내용은 출력으로 단순 렌더링됩니다. | 동봉된 코드를 루비 코드 블록으로 간주하고 (필요에 따라)do키워드를 태그 본문에 지정합니다. |
「 」를 참조해 주세요.
- mod_filename(모드)
- 퓨전 승객(mod_rails)
- 햄
- RDoc
- 마카비
레퍼런스
- ^ a b c Brown, Gregory (2009). Ruby Best Practices. O'Reilly. pp. 279–281. ISBN 978-0596523008.
- ^ a b c S., Ruby; D., Thomas; Hansson D, Heinemeier (2011). Agile Web Development with Rails. The Pragmatic Programmers. p. 35. ISBN 978-1-934356-54-8.
- ^ a b c d e Ellis, Stuart (1 July 2016). "An Introduction to ERB Templating". Retrieved 12 September 2016.
- ^ a b c d "ERB". 23 February 2015. Retrieved 12 September 2016.
- ^ "ERB – Ruby Templating". 2016. Retrieved 12 September 2016.
- ^ "ember(1)". 29 June 2011. Retrieved 12 September 2016.
- ^ "Erubis". 2011. Retrieved 12 September 2016.
외부 링크
- ERB 라이브러리
- "실용 프로그래머 가이드"의 한 장인 "루비와 웹"
- "web-mode.el", eRuby 템플릿을 편집하기 위한 emacs 메이저모드
- http://apidock.com/ruby/ERB, ERB – Ruby Templating
