Sha256: 8a0f81915cfe7176db12c5c0d8d81c5c7ee9863546383f794582cae5f7562e15
Contents?: true
Size: 942 Bytes
Versions: 5
Compression:
Stored size: 942 Bytes
Contents
require 'awestruct/util/yaml_load' module Awestruct module Extensions class DataDir def initialize(data_dir="_data") @data_dir = data_dir end def watch(watched_dirs) watched_dirs << @data_dir end def execute(site) Dir.glob(File.join(site.dir, @data_dir, '*')).each do |entry| next unless File.directory? entry data_key = File.basename(entry) data_map = {} Dir.glob(File.join(entry, '*')).each do |chunk| File.basename(chunk) =~ /^([^\.]+)/ key = $1.to_sym chunk_page = nil if chunk.end_with?('.yml') chunk_page = Awestruct.yaml_load_file(chunk) else chunk_page = site.engine.load_page(chunk) end data_map[key] = chunk_page end site.send("#{data_key}=", data_map) end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems