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

Inherits:
Object
  • 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

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ RedirectManager

Returns a new instance of RedirectManager.



29
30
31
32
# File 'lib/middleman-core/sitemap/extensions/redirects.rb', line 29

def initialize(app)
  @app = app
  @redirects = {}
end

Instance Method Details

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

Setup a redirect from a path to a target

Parameters:

  • path (String)
  • opts (Hash) (defaults to: {})

    The :to value gives a target path



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

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)

This method returns an undefined value.

Update the main sitemap resource list



47
48
49
50
51
52
53
54
55
56
57
# File 'lib/middleman-core/sitemap/extensions/redirects.rb', line 47

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