5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-07-05 20:55:45 +00:00
panel/app/lib/jekyll/readers/data_reader_decorator.rb
f 491b5f0b3a fix: leer los archivos de datos correctamente #13428
los archivos de datos se leen con rutas relativas, lo que puede mezclar
el cwd en usos concurrentes.

depreca la dependencia en jekyll-data además!
2023-05-13 17:31:40 -03:00

37 lines
1.1 KiB
Ruby

# frozen_string_literal: true
module Jekyll
module Readers
# Permite leer datos utilizando rutas absolutas.
#
# {Jekyll::DataReader} usa {Dir.chdir} con rutas relativas, lo que
# en nuestro uso provoca confusiones en el lector de datos.
#
# Con este módulo, podemos leer todos los archivos usando rutas
# absolutas, lo que nos permite reemplazar jekyll-data, que agregaba
# código duplicado.
module DataReaderDecorator
extend ActiveSupport::Concern
included do
def read_data_to(dir, data)
return unless File.directory?(dir) && !@entry_filter.symlink?(dir)
Dir.glob(File.join(dir, '*')).each do |path|
next if @entry_filter.symlink?(path)
entry = Pathname.new(path).relative_path_from(dir).to_s
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
end
end
end
end