1- package erbrenderer
2-
3- const templateEvaluationContextRb = `
41# Based on common/properties/template_evaluation_context.rb
52require "rubygems"
63require "ostruct"
@@ -169,22 +166,25 @@ def dump(*args)
169166end
170167
171168class ERBRenderer
172- def initialize(context )
173- @context = context
169+ def initialize ( json_context_path )
170+ @json_context_path = json_context_path
174171 end
175172
176173 def render ( src_path , dst_path )
177- erb = ERB.new(File.read(src_path), safe_level = nil, trim_mode = "-")
174+ erb = ERB . new ( File . read ( src_path ) , trim_mode : "-" )
178175 erb . filename = src_path
179176
177+ context_hash = JSON . load ( File . read ( @json_context_path ) )
178+ template_evaluation_context = TemplateEvaluationContext . new ( context_hash )
179+
180180 File . open ( dst_path , "w" ) do |f |
181- f.write(erb.result(@context .get_binding))
181+ f . write ( erb . result ( template_evaluation_context . get_binding ) )
182182 end
183183
184184 rescue Exception => e
185- name = "#{@context .name}/#{@context .index}"
185+ name = "#{ template_evaluation_context & .name } /#{ template_evaluation_context & .index } "
186186
187- line_i = e.backtrace.index { |l| l.include?(erb.filename) }
187+ line_i = e . backtrace . index { |l | l . include? ( " #{ erb & .filename } " ) }
188188 line_num = line_i ? e . backtrace [ line_i ] . split ( ':' ) [ 1 ] : "unknown"
189189 location = "(line #{ line_num } : #{ e . inspect } )"
190190
@@ -193,12 +193,8 @@ def render(src_path, dst_path)
193193end
194194
195195if $0 == __FILE__
196- context_path, src_path, dst_path = *ARGV
197-
198- context_hash = JSON.load(File.read(context_path))
199- context = TemplateEvaluationContext.new(context_hash)
196+ json_context_path , erb_template_path , rendered_template_path = *ARGV
200197
201- renderer = ERBRenderer.new(context )
202- renderer.render(src_path, dst_path )
198+ renderer = ERBRenderer . new ( json_context_path )
199+ renderer . render ( erb_template_path , rendered_template_path )
203200end
204- `
0 commit comments