mirror of
https://0xacab.org/sutty/sutty
synced 2024-07-08 02:25:45 +00:00
35 lines
1.2 KiB
Ruby
35 lines
1.2 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module ActiveStorage
|
||
|
module Service
|
||
|
# Modificaciones a ActiveStorage::Service::Registry
|
||
|
module RegistryDecorator
|
||
|
extend ActiveSupport::Concern
|
||
|
|
||
|
included do
|
||
|
# El mismo comportamiento que #fetch con el agregado de generar
|
||
|
# un {JekyllService} para cada sitio.
|
||
|
def fetch(name)
|
||
|
services.fetch(name.to_sym) do |key|
|
||
|
if configurations.include?(key)
|
||
|
services[key] = configurator.build(key)
|
||
|
elsif (site = Site.find_by_name(key))
|
||
|
root = File.join(site.path, 'public')
|
||
|
services[key] = ActiveStorage::Service::JekyllService.new(root: root, public: true).tap do |s|
|
||
|
s.name = key.to_sym
|
||
|
end
|
||
|
elsif block_given?
|
||
|
yield key
|
||
|
else
|
||
|
raise KeyError, "Missing configuration for the #{key} Active Storage service. " \
|
||
|
"Configurations available for the #{configurations.keys.to_sentence} services."
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
ActiveStorage::Service::Registry.include ActiveStorage::Service::RegistryDecorator
|