Class: Middleman::Extensions::DirectoryIndexes::DirectoryIndexManager

Inherits:
Object
  • Object
show all
Defined in:
lib/middleman-more/extensions/directory_indexes.rb

Overview

Central class for managing the directory indexes extension

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ DirectoryIndexManager

Returns a new instance of DirectoryIndexManager.



26
27
28
# File 'lib/middleman-more/extensions/directory_indexes.rb', line 26

def initialize(app)
  @app = app
end

Instance Method Details

#manipulate_resource_list(resources) ⇒ void

This method returns an undefined value.

Update the main sitemap resource list



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/middleman-more/extensions/directory_indexes.rb', line 32

def manipulate_resource_list(resources)
  index_file = @app.index_file
  new_index_path = "/#{index_file}"

  resources.each do |resource|
    # Check if it would be pointless to reroute
    next if resource.destination_path == index_file ||
            resource.destination_path.end_with?(new_index_path) ||
            File.extname(index_file) != resource.ext

    # Check if frontmatter turns directory_index off
    d = resource.data
    next if d && d["directory_index"] == false

    # Check if file metadata (options set by "page" in config.rb) turns directory_index off
    if resource.[:options] && resource.[:options][:directory_index] == false
      next
    end

    resource.destination_path = resource.destination_path.chomp(File.extname(index_file)) + new_index_path
  end
end