Sha256: 5dc614f1bb9a5c0d3119eddd08c83dc0e36ec2bbb77505967f99ad84e8c3cab7
Contents?: true
Size: 837 Bytes
Versions: 3
Compression:
Stored size: 837 Bytes
Contents
# frozen_string_literal: true require 'liquid' require 'yaml' module Frise # Provides a static parse method for reading a config from a YAML file applying the required # transformations. module Parser class << self def parse(file, symbol_table = nil) return nil unless File.file? file YAML.safe_load(parse_as_text(file, symbol_table), [], [], true) || {} end def parse_as_text(file, symbol_table = nil) return nil unless File.file? file content = File.read(file) content = Liquid::Template.parse(content).render with_internal_vars(file, symbol_table) if symbol_table content end private def with_internal_vars(file, symbol_table) symbol_table.merge('_file_dir' => File.expand_path(File.dirname(file))) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
frise-0.4.1 | lib/frise/parser.rb |
frise-0.4.0 | lib/frise/parser.rb |
frise-0.3.0 | lib/frise/parser.rb |