class JekyllData::ThemeDataReader
Attributes
content[R]
site[R]
Public Class Methods
new(site)
click to toggle source
Calls superclass method
# File lib/jekyll-data/theme_data_reader.rb, line 7 def initialize(site) super @source_dir = site.in_theme_dir("/") end
Public Instance Methods
read(dir)
click to toggle source
# File lib/jekyll-data/theme_data_reader.rb, line 13 def read(dir) return unless site.theme && site.theme.data_path base = site.in_theme_dir(dir) read_data_to(base, @content) @content end
read_data_to(dir, data)
click to toggle source
# File lib/jekyll-data/theme_data_reader.rb, line 21 def read_data_to(dir, data) return unless File.directory?(dir) && !@entry_filter.symlink?(dir) entries = Dir.chdir(dir) do Dir["*.{yaml,yml,json,csv,tsv}"] + Dir["*"].select { |fn| File.directory?(fn) } end entries.each do |entry| path = @site.in_theme_dir(dir, entry) next if @entry_filter.symlink?(path) if File.directory?(path) read_data_to(path, data[sanitize_filename(entry)] = {}) else key = sanitize_filename(File.basename(entry, ".*")) data[key] = read_data_file(path) end end end