Class: LicenseFinder::Scanner
- Inherits:
-
Object
- Object
- LicenseFinder::Scanner
- Defined in:
- lib/license_finder/scanner.rb
Constant Summary collapse
- PACKAGE_MANAGERS =
[ GoModules, GoDep, GoWorkspace, Go15VendorExperiment, Glide, Gvt, Govendor, Trash, Bundler, NPM, PNPM, Pip, Yarn, Bower, Maven, Gradle, CocoaPods, Rebar, Erlangmk, Nuget, Carthage, Mix, Conan, Sbt, Cargo, Dotnet, Composer, Pipenv, Conda, Spm, Pub ].freeze
Class Method Summary collapse
Instance Method Summary collapse
- #active_package_managers ⇒ Object
- #active_packages ⇒ Object
-
#initialize(config = { project_path: Pathname.new('') }) ⇒ Scanner
constructor
A new instance of Scanner.
Constructor Details
#initialize(config = { project_path: Pathname.new('') }) ⇒ Scanner
Returns a new instance of Scanner.
32 33 34 35 36 37 |
# File 'lib/license_finder/scanner.rb', line 32 def initialize(config = { project_path: Pathname.new('') }) @config = config @project_path = @config[:project_path] @logger = @config[:logger] @enabled_package_manager_ids = @config[:enabled_package_manager_ids] end |
Class Method Details
.remove_subprojects(paths) ⇒ Object
12 13 14 |
# File 'lib/license_finder/scanner.rb', line 12 def remove_subprojects(paths) paths.reject { |path| subproject?(Pathname(path)) } end |
.supported_package_manager_ids ⇒ Object
16 17 18 |
# File 'lib/license_finder/scanner.rb', line 16 def supported_package_manager_ids PACKAGE_MANAGERS.map(&:id) end |
Instance Method Details
#active_package_managers ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/license_finder/scanner.rb', line 45 def active_package_managers return @package_managers if @package_managers active_pm_classes = [] enabled_package_managers.each do |pm_class| active = pm_class.new(@config).active? if active @logger.info pm_class, "is active for '#{@project_path}'", color: :green active_pm_classes << pm_class else @logger.debug pm_class, "is not active for '#{@project_path}'", color: :red end end @logger.info 'License Finder', 'No active and installed package managers found for project.', color: :red if active_pm_classes.empty? active_pm_classes -= active_pm_classes.map(&:takes_priority_over) @package_managers = active_pm_classes.map { |pm_class| pm_class.new(@config) } end |
#active_packages ⇒ Object
39 40 41 42 43 |
# File 'lib/license_finder/scanner.rb', line 39 def active_packages package_managers = active_package_managers installed_package_managers = package_managers.select { |pm| pm.installed?(@logger) } installed_package_managers.flat_map(&:current_packages_with_relations) end |