Class: HealthDataStandards::Export::TemplateHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/health-data-standards/export/template_helper.rb

Overview

Class that finds ERb templates. Here is how it can be configured:

template_format

What format (C32, CCDA, etc) are we looking for. This will cause the TemplateHelper to look for template_name.template_format.erb

template_subdir

The sub directory where templates live. If none is provided, it will look for templates in the root of the template_directory

template_directory

The root directory to look in for templates. By default, it is in the template folder of this gem. It can be handy to provide a different directory if you want to use this class outside of the HDS gem

Instance Method Summary collapse

Constructor Details

#initialize(template_format, template_subdir = nil, template_directory = nil) ⇒ TemplateHelper

Returns a new instance of TemplateHelper.



13
14
15
16
17
# File 'lib/health-data-standards/export/template_helper.rb', line 13

def initialize(template_format, template_subdir = nil, template_directory = nil)
  @template_format = template_format
  @template_directory = template_directory
  @template_subdir = template_subdir
end

Instance Method Details

#partial(partial_name) ⇒ Object

Basically the same template, but prepends an underscore to the template name to mimic the Rails convention for template fragments



37
38
39
# File 'lib/health-data-standards/export/template_helper.rb', line 37

def partial(partial_name)
  template("_#{partial_name}")
end

#template(template_name) ⇒ Object

Returns the raw ERb for the template_name provided. This method will look in template_directory/template_subdir/template_name.template_format.erb



31
32
33
# File 'lib/health-data-standards/export/template_helper.rb', line 31

def template(template_name)
  File.read(File.join(template_root, "#{template_name}.#{@template_format}.erb"))
end

#template_rootObject



19
20
21
22
23
24
25
26
27
# File 'lib/health-data-standards/export/template_helper.rb', line 19

def template_root
  @template_directory ||= File.dirname(__FILE__)

  if @template_subdir
    return File.join(@template_directory, '..', '..', '..', 'templates', @template_subdir)
  else
    return File.join(@template_directory, '..', '..', '..', 'templates')
  end
end