module Dradis::Plugins::Mappings::Base::ClassMethods

Public Instance Methods

component() click to toggle source
# File lib/dradis/plugins/mappings/base.rb, line 18
def component
  meta[:name].to_s
end
default_mapping(source) click to toggle source
# File lib/dradis/plugins/mappings/base.rb, line 36
def default_mapping(source)
  if mapping_sources.include?(source.to_sym)
    self::Mapping::DEFAULT_MAPPING[source.to_sym]
  end
end
default_mapping_fields(source) click to toggle source
# File lib/dradis/plugins/mappings/base.rb, line 12
def default_mapping_fields(source)
  default_mapping(source).map do |destination_field, content|
    MappingField.new(destination_field: destination_field, content: content)
  end
end
field_names(source:, destination: nil, field_type: 'destination') click to toggle source
# File lib/dradis/plugins/mappings/base.rb, line 22
def field_names(source:, destination: nil, field_type: 'destination')
  mappings = mappings(source: source, destination: destination)

  mapping_fields = if mappings.any?
    mappings.map(&:mapping_fields).flatten
  end

  if mapping_fields && mapping_fields.any?
    mapping_fields.pluck("#{field_type}_field").uniq
  else
    default_mapping(source).keys
  end
end
get_mapping(source:, destination:) click to toggle source

returns single matching mapping given source & destination or default

# File lib/dradis/plugins/mappings/base.rb, line 54
def get_mapping(source:, destination:)
  mapping = Mapping.includes(:mapping_fields).find_by(
    component: component,
    source: source,
    destination: destination
  )
end
mapping_fields(source:, destination:) click to toggle source
# File lib/dradis/plugins/mappings/base.rb, line 62
def mapping_fields(source:, destination:)
  mapping = get_mapping(source: source, destination: destination)

  if mapping
    mapping.mapping_fields
  else
    default_mapping_fields(source)
  end
end
mapping_sources() click to toggle source
# File lib/dradis/plugins/mappings/base.rb, line 72
def mapping_sources
  self::Mapping::SOURCE_FIELDS.keys
end
mappings(source: nil, destination: nil) click to toggle source

given the params returns all matching mappings will accept source and/or destination or no args

# File lib/dradis/plugins/mappings/base.rb, line 44
def mappings(source: nil, destination: nil)
  mappings = Mapping.includes(:mapping_fields).where(
    component: component
  )
  mappings = mappings.where(source: source) if source
  mappings = mappings.where(destination: destination) if destination
  mappings
end
source_fields(source) click to toggle source
# File lib/dradis/plugins/mappings/base.rb, line 76
def source_fields(source)
  if mapping_sources.include?(source.to_sym)
    self::Mapping::SOURCE_FIELDS[source.to_sym]
  end
end