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