class Middleman::Sitemap::Extensions::Proxies::ProxyManager
Manages the list of proxy configurations and manipulates the sitemap to include new resources based on those configurations
Public Class Methods
new(app)
click to toggle source
# File lib/middleman-core/sitemap/extensions/proxies.rb, line 90 def initialize(app) @app = app @proxy_configs = Set.new end
Public Instance Methods
manipulate_resource_list(resources)
click to toggle source
Update the main sitemap resource list @return [void]
# File lib/middleman-core/sitemap/extensions/proxies.rb, line 116 def manipulate_resource_list(resources) resources + @proxy_configs.map do |config| p = ::Middleman::Sitemap::Resource.new( @app.sitemap, config.path ) p.proxy_to(config.target) p.add_metadata(config.metadata) p end end
proxy(path, target, opts={}, &block)
click to toggle source
Setup a proxy from a path to a target @param [String] path @param [String] target @param [Hash] opts options to apply to the proxy, including things like
:locals, :ignore to hide the proxy target, :layout, and :directory_indexes.
@return [void]
# File lib/middleman-core/sitemap/extensions/proxies.rb, line 101 def proxy(path, target, opts={}, &block) metadata = { options: {}, locals: {}, blocks: [] } metadata[:blocks] << block if block_given? metadata[:locals] = opts.delete(:locals) || {} @app.ignore(target) if opts.delete(:ignore) metadata[:options] = opts @proxy_configs << ProxyConfiguration.new(path: path, target: target, metadata: metadata) @app.sitemap.rebuild_resource_list!(:added_proxy) end