Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Template
- def initialize(data)
- @data = StringIO.new(data)
- @params = {}
- yield self if block_given?
- end
- def add_param(key, value)
- @params.merge!({key => value})
- end
- def generate
- @params.each do |k,v|
- instance_variable_set :"@#{k}", v
- end
- ERB.new(@data.read).result(binding)
- end
- end
- end
- # rspec:
- describe Template do
- it 'test' do
- template = Template.new('data: <%= var_1 %>, <%= var_2 %>, <%= var_3 %>') do |template|
- template.add_param :var_1, 'val-1'
- template.add_param :var_2, 'val-2'
- template.add_param :var_3, 'val-3'
- end
- pp template.generate
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment