Class: Middleman::Sitemap::Extensions::Redirects

Inherits:
Extension
  • Object
show all
Defined in:
lib/middleman-core/sitemap/extensions/redirects.rb

Overview

Manages the list of proxy configurations and manipulates the sitemap to include new resources based on those configurations

Constant Summary

Constants included from Contracts

Contracts::PATH_MATCHER

Instance Attribute Summary

Attributes inherited from Extension

#app, #options

Instance Method Summary collapse

Methods inherited from Extension

activated_extension, #add_exposed_to_context, #after_build, #after_configuration, after_extension_activated, #after_extension_activated, #before_build, #before_configuration, clear_after_extension_callbacks, config, expose_to_application, expose_to_config, expose_to_template, helpers, option, #ready, resources

Methods included from Contracts

#Contract

Constructor Details

#initialize(app, config = {}, &block) ⇒ Redirects

Returns a new instance of Redirects.



15
16
17
18
19
# File 'lib/middleman-core/sitemap/extensions/redirects.rb', line 15

def initialize(app, config={}, &block)
  super

  @redirects = {}
end

Instance Method Details

#create_redirect(path, opts = {}, &block) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/middleman-core/sitemap/extensions/redirects.rb', line 25

def create_redirect(path, opts={}, &block)
  opts[:template] = block if block_given?

  @redirects[path] = opts

  @app.sitemap.rebuild_resource_list!(:added_redirect)
end

#manipulate_resource_list(resources) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/middleman-core/sitemap/extensions/redirects.rb', line 36

def manipulate_resource_list(resources)
  resources + @redirects.map do |path, opts|
    r = RedirectResource.new(
      @app.sitemap,
      path,
      opts[:to]
    )
    r.output = opts[:template] if opts[:template]
    r
  end
end