Sha256: 7d1145e69b5605f9f37f32bdeeeda0a8ddc6e4752ec2b5d7fe43d1bbb13e3997

Contents?: true

Size: 1.99 KB

Versions: 5

Compression:

Stored size: 1.99 KB

Contents

module HealthDataStandards
  module Export
    # 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
    class TemplateHelper
      def initialize(template_format, template_subdir = nil, template_directory = nil)
        @template_format = template_format
        @template_directory = template_directory
        @template_subdir = template_subdir
      end

      def template_root
        @template_directory ||= File.join(File.dirname(__FILE__), '..', '..', '..', 'templates')

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

      # Returns the raw ERb for the template_name provided. This method will look in
      # template_directory/template_subdir/template_name.template_format.erb
      def template(template_name)
        File.read(File.join(template_root, "#{template_name}.#{@template_format}.erb"))
      end

      # Basically the same template, but prepends an underscore to the template name
      # to mimic the Rails convention for template fragments
      def partial(partial_name)
        template("_#{partial_name}")
      end

      def template_file(file,partial=false)
        file = partial ? "_#{file}" : file
        File.new(File.join(template_root, "#{file}.#{@template_format}.erb"))
      end

    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
health-data-standards-3.4.4 lib/health-data-standards/export/template_helper.rb
health-data-standards-3.4.3 lib/health-data-standards/export/template_helper.rb
health-data-standards-3.4.2 lib/health-data-standards/export/template_helper.rb
health-data-standards-3.4.1 lib/health-data-standards/export/template_helper.rb
health-data-standards-3.4.0 lib/health-data-standards/export/template_helper.rb