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 52
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 62
def ignore(path=nil, &block)
  if path.is_a? Regexp
    @ignored_callbacks << Proc.new {|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.new {|p| File.fnmatch(path_clean, p) }
    else
      # Add a specific-path ignore unless that path is already covered
      @ignored_callbacks << Proc.new {|p| p == path_clean } unless ignored?(path_clean)
    end
  elsif block_given?
    @ignored_callbacks << block
  end
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 81
def ignored?(path)
  path_clean = ::Middleman::Util.normalize_path(path)
  @ignored_callbacks.any? { |b| b.call(path_clean) }
end