Sha256: a78f1efe7ef2cd7587a3a7e3d5bbbb4df0e3776c6a6945c21b11793a179eb57c
Contents?: true
Size: 1.68 KB
Versions: 9
Compression:
Stored size: 1.68 KB
Contents
module LicenseFinder module Logger def self.new options={} klass = if options[:quiet] Quiet elsif options[:debug] Verbose else Progress end klass.new end class Base def active package_manager, is_active log package_manager, sprintf("%s active", (is_active ? "is" : "not")) end def package package_manager, package dependencies = package.children if dependencies.empty? log package_manager, sprintf("package '%s' has no dependencies", package.name) else log package_manager, sprintf("package '%s' has dependencies:", package.name) dependencies.each do |dep| log package_manager, sprintf("- %s", dep) end end end def activation activation preamble = sprintf("package %s:", activation.package.name) if activation.sources.empty? log activation.package.class, sprintf("%s no licenses found", preamble) else activation.sources.each do |source| log activation.package.class, sprintf("%s found license '%s' %s", preamble, activation.license.name, source) end end end def log prefix, string raise NotImplementedError, "#log must be implemented" end end class Quiet < Base def log prefix, string end end class Progress < Base def log prefix, string print(".") && $stdout.flush end end class Verbose < Base def log prefix, string printf("%s: %s\n", prefix, string) end end Default = Quiet end end
Version data entries
9 entries across 9 versions & 1 rubygems