Sha256: 5d4c222666181affec7d3a65fd44614696f8c10c956d1839c8a8b514dda35ff3

Contents?: true

Size: 974 Bytes

Versions: 5

Compression:

Stored size: 974 Bytes

Contents

# frozen_string_literal: true

require 'erb'

module Soaspec
  # Handles reading templates for tests
  class TemplateReader
    # Name of file where template is stored
    attr_accessor :template_name

    # @return [String] Path to where template file is stored
    def file_location
      File.join(*Soaspec.template_folder, template_name)
    end

    # @param [String] template_name File where template is stored
    # @return [String] Body of template after determining test_values
    def render_body(template_name, binding)
      self.template_name = template_name
      unless File.exist? file_location
        raise "Cannot see file at #{file_location}. "\
              "Global folder is '#{Soaspec.template_folder}' and filename is '#{template_name}'"
      end
      request_body = File.read file_location
      raise "Template at #{file_location} not parsed correctly" if request_body.strip.empty?

      ERB.new(request_body).result(binding)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
soaspec-0.3.2 lib/soaspec/template_reader.rb
soaspec-0.3.1 lib/soaspec/template_reader.rb
soaspec-0.2.32 lib/soaspec/template_reader.rb
soaspec-0.2.31 lib/soaspec/template_reader.rb
soaspec-0.2.30 lib/soaspec/template_reader.rb