class Middleman::Sitemap::Extensions::Ignores

Class to handle managing ignores

def create_ignore(path=nil, &block)

def create_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

def ignored?(path)

def ignored?(path)
  path_clean = ::Middleman::Util.normalize_path(path)
  @ignored_callbacks.any? { |b| b.call(path_clean) }
end

def initialize(app, config={}, &block)

def initialize(app, config={}, &block)
  super
  # Array of callbacks which can assign ignored
  @ignored_callbacks = Set.new
  @app.sitemap.define_singleton_method(:ignored?, &method(:ignored?))
end