Sha256: d84ae5853594488a0cf8629e3a9ec31d0f521c87ad7c684e65616e09c8926f65

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

module LicenseFinder
  module Activation
    # An Activation reports that a license has been activated for a package, and
    # tracks the source of that information
    Basic = Struct.new(:package, :license) do
      def log(logger)
        sources.each do |source|
          log_package(logger, "found license '#{license.name}' #{source}")
        end
      end

      private

      def log_package(logger, text)
        logger.log(package.class, "package #{package.name}: #{text}")
      end
    end

    class FromDecision < Basic
      def sources
        ["from decision"]
      end
    end

    class FromSpec < Basic
      def sources
        ["from spec"]
      end
    end

    class FromFiles < Basic
      def initialize(package, license, files)
        super(package, license)
        @files = files
      end

      attr_reader :files

      def sources
        files.map { |file| "from file '#{file.path}'" }
      end
    end

    class None < Basic
      def sources
        []
      end

      def log(logger)
        log_package(logger, "no licenses found")
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
license_finder-2.0.1 lib/license_finder/packages/activation.rb
license_finder-2.0.0 lib/license_finder/packages/activation.rb