main
1# frozen_string_literal: true
2
3module ErbTemplating
4 class Template
5 def initialize(template_name, data)
6 @erb = ERB.new(IO.read(File.join('spec/fixtures', "#{template_name}.erb")))
7 @data = data
8 end
9
10 def fetch(key, default)
11 @data.fetch(key) { default }
12 end
13
14 def __expand
15 @erb.result(binding)
16 end
17
18 def method_missing(method, *)
19 @data[method] || super
20 end
21
22 def respond_to_missing?(method, *)
23 @data.key?(method)
24 end
25 end
26
27 def expand_template(template_name, data = {})
28 Template.new(template_name, data).__expand
29 end
30end
31
32RSpec.configure do |config|
33 config.include ErbTemplating
34end