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.



34
35
36
37
# File 'lib/middleman-core/sitemap/extensions/redirects.rb', line 34

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

Instance Method Details

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

This method returns an undefined value.

Setup a redirect from a path to a target

Parameters:

  • path (String)
  • The (Hash)

    :to value gives a target path



43
44
45
46
47
48
49
50
51
# File 'lib/middleman-core/sitemap/extensions/redirects.rb', line 43

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

  @redirects[path] = opts

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

#manipulate_resource_list(resources) ⇒ void

This method returns an undefined value.

Update the main sitemap resource list



55
56
57
58
59
60
61
62
63
64
65
# File 'lib/middleman-core/sitemap/extensions/redirects.rb', line 55

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