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 85
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 111
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 96
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