module Dradis::Plugins::Import::Filters

Public Class Methods

[](plugin) click to toggle source

Provides access to filters by plugin :api: public

# File lib/dradis/plugins/import/filters.rb, line 38
def [](plugin)
  _filters[plugin]
end
_filters() click to toggle source

:api: private

# File lib/dradis/plugins/import/filters.rb, line 43
def _filters
  @filters ||= {}
end
add(plugin, label, filter, &block) click to toggle source

– Class Methods ——————————————————– One Import plugin can define several filters (e.g. to query different endpoints of a remote API).

Use this method in your Importer to register different filters, pass a block or a class.

Examples:

register_filter :by_osvdb_id do

def c

end

# File lib/dradis/plugins/import/filters.rb, line 19
def add(plugin, label, filter, &block)
  filter ||= Class.new(Dradis::Plugins::Import::Filters::Base)
  filter.class_eval(&block) if block_given?

  unless filter.method_defined?(:query)
    raise NoMethodError, "query() is not declared in the #{label.inspect} filter"
  end

  base = Dradis::Plugins::Import::Filters::Base
  unless filter.ancestors.include?(base)
    raise "#{label.inspect} is not a #{base}"
  end

  _filters[plugin]        = {} unless _filters.key?(plugin)
  _filters[plugin][label] = filter
end