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