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

Version Path
license_finder-2.1.0.rc6 lib/license_finder/logger.rb
license_finder-2.1.0.rc5 lib/license_finder/logger.rb
license_finder-2.1.0.rc4 lib/license_finder/logger.rb
license_finder-2.1.0.rc3 lib/license_finder/logger.rb
license_finder-2.1.0.rc2 lib/license_finder/logger.rb
license_finder-2.1.0.rc1 lib/license_finder/logger.rb
license_finder-2.0.4 lib/license_finder/logger.rb
license_finder-2.0.3 lib/license_finder/logger.rb
license_finder-2.0.2 lib/license_finder/logger.rb