class Liquid::Rails::ResolverSystem

Public Instance Methods

read_template_file(template_path, context) click to toggle source

Return a valid liquid template string for requested partial path

# File lib/liquid-rails/resolver_system.rb, line 7
def read_template_file(template_path, context)
  controller = context.registers[:controller]

  controller_path = controller.controller_path
  template_path   = "#{controller_path}/#{template_path}" unless template_path.include?('/')

  name = template_path.split('/').last
  prefix = template_path.split('/')[0...-1].join('/')

  result = controller.lookup_context.find_all(name, prefix, true)

  if result.present?
    result.first.source.force_encoding("UTF-8") # cast to utf8 as it was getting encoding errors
  else
    raise FileSystemError, "No such template '#{template_path}'"
  end
end