class Awestruct::Extensions::DataDir

Public Class Methods

new(data_dir="_data") click to toggle source
# File lib/awestruct/extensions/data_dir.rb, line 7
def initialize(data_dir="_data")
  @data_dir = data_dir
end

Public Instance Methods

execute(site) click to toggle source
# File lib/awestruct/extensions/data_dir.rb, line 15
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
watch(watched_dirs) click to toggle source
# File lib/awestruct/extensions/data_dir.rb, line 11
def watch(watched_dirs)
    watched_dirs << @data_dir
end