Sha256: 43d3c8ed409ec98dd4c19738ffadcff7f40b4a10185376d2deb50421114270a0
Contents?: true
Size: 1.55 KB
Versions: 1
Compression:
Stored size: 1.55 KB
Contents
# frozen_string_literal: true module DiverDown class Web class ModuleSourcesFilter # @param metadata_alias [DiverDown::Web::Metadata] def initialize(metadata) @metadata = metadata end # @param definition [DiverDown::Definition] # @param modules [Array<Array<String>>] # @return [DiverDown::Definition] def filter(definition, modules:) new_definition = DiverDown::Definition.new( definition_group: definition.definition_group, title: definition.title ) is_match_modules = ->(source_name) do source_modules = @metadata.source(source_name).modules source_modules.first(modules.size) == modules end definition.sources.each do |source| next unless is_match_modules.call(source.source_name) new_source = new_definition.find_or_build_source(source.source_name) source.dependencies.each do |dependency| next unless is_match_modules.call(dependency.source_name) new_dependency = new_source.find_or_build_dependency(dependency.source_name) next unless new_dependency dependency.method_ids.each do |method_id| new_method_id = new_dependency.find_or_build_method_id( context: method_id.context, name: method_id.name ) method_id.paths.each do |path| new_method_id.add_path(path) end end end end new_definition end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
diver_down-0.0.1.alpha14 | lib/diver_down/web/module_sources_filter.rb |