class Esse::TemplateLoader

Constants

EXT_PARSER

Public Class Methods

new(directories, extensions: EXT_PARSER.keys) click to toggle source
# File lib/esse/template_loader.rb, line 15
def initialize(directories, extensions: EXT_PARSER.keys)
  @directories = Array(directories).map do |dir|
    dir.is_a?(Pathname) ? dir : Pathname.new(dir)
  end
  @extensions = extensions
end

Public Instance Methods

read(*patterns) click to toggle source

Look for files into the @directories using some file pattern.

# File lib/esse/template_loader.rb, line 23
def read(*patterns)
  path = nil
  @directories.each do |dir|
    patterns.find do |pattern|
      path = Dir[dir.join("#{pattern}.{#{@extensions.join(',')}}")].first
      break if path
    end
    break if path
  end
  load(path) if path
end

Protected Instance Methods

load(file) click to toggle source
# File lib/esse/template_loader.rb, line 37
def load(file)
  parser = EXT_PARSER[File.extname(file).sub(/^\./, '')]
  return unless parser

  parser.call(file)
rescue MultiJson::ParseError
  nil
end