Sha256: 40c2cb58eb02528ca6d56965d094cd00229ba661889e265ff6e45dd28716bd21
Contents?: true
Size: 910 Bytes
Versions: 5
Compression:
Stored size: 910 Bytes
Contents
module RepoAnalyzer class ExtractProjectInfoJob < ApplicationJob def perform(repo_name) project_info = {} bridge = RepoAnalyzer::ProjectDataBridge.new(repo_name) for_each_extractor do |extractor| extracted_data = extractor.new(bridge).extract project_info.merge!(extracted_data) end project_info end private def for_each_extractor(&block) extractors_from_directory.each do |extractor| next if extractor == ::RepoAnalyzer::ProjectInfoExtractor block.call(extractor) end end def extractors_from_directory Dir[ RepoAnalyzer::Engine.root.join("app/extractors/repo_analyzer/*.rb") ].map do |path| file_name = path.split('/').last extractor_name = file_name.split('.').first.camelize Object.const_get("::RepoAnalyzer::#{extractor_name}") end end end end
Version data entries
5 entries across 5 versions & 1 rubygems