mirror of
https://0xacab.org/sutty/sutty
synced 2024-07-05 20:55:45 +00:00
![f](/assets/img/avatar_default.png)
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!
37 lines
1.1 KiB
Ruby
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
|