Sha256: 72902735d7133536cd432531596f83e0834acff6673034e0f223380babdd6dab

Contents?: true

Size: 1.25 KB

Versions: 1

Compression:

Stored size: 1.25 KB

Contents

require 'thor'

module LicenseFinder
  module CLI
    class Base < Thor
      class_option :decisions_file, desc: "Where decisions are saved. Defaults to doc/dependency_decisions.yml."

      no_commands do
        def decisions
          license_finder.decisions
        end
      end

      private

      def license_finder
        @lf ||= LicenseFinder::Core.new(license_finder_config)
      end

      def license_finder_config
        result = extract_options(:decisions_file, :gradle_command)
        result[:logger] = logger_config
        result[:project_path] = Pathname.pwd
        result
      end

      def logger_config
        @logger_config ||= extract_options(:quiet, :debug)
      end

      def say_each(coll)
        if coll.any?
          coll.each do |item|
            say(block_given? ? yield(item) : item)
          end
        else
          say '(none)'
        end
      end

      def assert_some(things)
        unless things.any?
          raise ArgumentError, "wrong number of arguments (0 for 1+)", caller
        end
      end

      def extract_options(*keys)
        result = {}
        keys.each do |key|
          result[key.to_sym] = options[key.to_s] if options.has_key? key.to_s
        end
        result
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
license_finder-2.0.0 lib/license_finder/cli/base.rb