Rubyを使った簡易Velocityモドキ

メイン。


#!/bin/ruby -Ks
require "template.rb"
template = Template.new("example.vm")
alist = []
alist << "ArrayList element 1"
alist << "ArrayList element 2"
alist << "ArrayList element 3"
alist << "ArrayList element 4"
template.put("@list", alist)
template.merge

テンプレートクラス。


class Template
def initialize(template)
@template = File.read(template)
@template = @template.gsub(/^\#([^{].*)$/) {"EOS\n" + $1 +"\ncontext.write <

テンプレート。


## This is an example velocity template

#this = "Velocity"

${this} is great!

#for name in @list
${name} is great!
#end

#condition = true

#if condition
The condition is true!
#else
The condition is false!
#end

実行結果。


Velocity is great!

ArrayList element 1 is great!
ArrayList element 2 is great!
ArrayList element 3 is great!
ArrayList element 4 is great!


The condition is true!