1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 module tmpl_composer
is example
19 ### Here, definition of the specific templates
21 # The root template for composers
25 # Short list of composers
26 var composers
= new Array[TmplComposer]
28 # Detailled list of composers
29 var composer_details
= new Array[TmplComposerDetail]
31 # Add a composer in both lists
32 fun add_composer
(firstname
, lastname
: String, birth
, death
: Int)
34 composers
.add
(new TmplComposer(lastname
))
35 composer_details
.add
(new TmplComposerDetail(firstname
, lastname
, birth
, death
))
38 redef fun rendering
do
49 add_all composer_details
53 # A composer in the short list of composers
60 redef fun rendering
do add
"- {name}\n"
63 # A composer in the detailled list of composers
64 class TmplComposerDetail
72 redef fun rendering
do add
"""
74 COMPOSER: {{{firstname}}} {{{lastname}}}
81 ### Here a simple usage of the templates
83 var f
= new TmplComposers
84 f
.add_composer
("Johann Sebastian", "Bach", 1685, 1750)
85 f
.add_composer
("George Frideric", "Handel", 1685, 1759)
86 f
.add_composer
("Wolfgang Amadeus", "Mozart", 1756, 1791)