class Middleman::Sitemap::Extensions::Ignores::IgnoreManager
Class to handle managing ignores
Public Class Methods
new(app)
click to toggle source
# File lib/middleman-core/sitemap/extensions/ignores.rb, line 46 def initialize(app) @app = app # Array of callbacks which can ass ignored @ignored_callbacks = [] end
Public Instance Methods
ignore(path=nil, &block)
click to toggle source
Ignore a path or add an ignore callback @param [String, Regexp] path Path glob expression, or path regex @return [void]
# File lib/middleman-core/sitemap/extensions/ignores.rb, line 56 def ignore(path=nil, &block) if path.is_a? Regexp @ignored_callbacks << proc { |p| p =~ path } elsif path.is_a? String path_clean = ::Middleman::Util.normalize_path(path) if path_clean.include?('*') # It's a glob @ignored_callbacks << proc { |p| File.fnmatch(path_clean, p) } else # Add a specific-path ignore unless that path is already covered return if ignored?(path_clean) @ignored_callbacks << proc { |p| p == path_clean } end elsif block_given? @ignored_callbacks << block end @app.sitemap.invalidate_resources_not_ignored_cache! end
ignored?(path)
click to toggle source
Whether a path is ignored @param [String] path @return [Boolean]
# File lib/middleman-core/sitemap/extensions/ignores.rb, line 78 def ignored?(path) path_clean = ::Middleman::Util.normalize_path(path) @ignored_callbacks.any? { |b| b.call(path_clean) } end