Guest User

Untitled

a guest
Aug 8th, 2012
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rails 0.83 KB | None | 0 0
  1. class Template
  2.         def initialize(data)
  3.             @data = StringIO.new(data)
  4.             @params = {}
  5.             yield self if block_given?
  6.         end
  7.  
  8.         def add_param(key, value)
  9.             @params.merge!({key => value})
  10.         end
  11.  
  12.         def generate
  13.             @params.each do |k,v|
  14.                 instance_variable_set :"@#{k}", v
  15.             end
  16.             ERB.new(@data.read).result(binding)
  17.         end
  18.     end
  19. end
  20.  
  21.  
  22. # rspec:
  23.  
  24. describe Template do
  25.  
  26.         it 'test' do
  27.             template = Template.new('data: <%= var_1 %>, <%= var_2 %>, <%= var_3 %>') do |template|
  28.                 template.add_param :var_1, 'val-1'
  29.                 template.add_param :var_2, 'val-2'
  30.                 template.add_param :var_3, 'val-3'
  31.             end
  32.             pp template.generate
  33.         end
  34.     end
Advertisement
Add Comment
Please, Sign In to add comment