mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
37 lines
900 B
Ruby
37 lines
900 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Bundler
|
||
|
class CLI::Fund
|
||
|
attr_reader :options
|
||
|
|
||
|
def initialize(options)
|
||
|
@options = options
|
||
|
end
|
||
|
|
||
|
def run
|
||
|
Bundler.definition.validate_runtime!
|
||
|
|
||
|
groups = Array(options[:group]).map(&:to_sym)
|
||
|
|
||
|
deps = if groups.any?
|
||
|
Bundler.definition.dependencies_for(groups)
|
||
|
else
|
||
|
Bundler.definition.current_dependencies
|
||
|
end
|
||
|
|
||
|
fund_info = deps.each_with_object([]) do |dep, arr|
|
||
|
spec = Bundler.definition.specs[dep.name].first
|
||
|
if spec.metadata.key?("funding_uri")
|
||
|
arr << "* #{spec.name} (#{spec.version})\n Funding: #{spec.metadata["funding_uri"]}"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if fund_info.empty?
|
||
|
Bundler.ui.info "None of the installed gems you directly depend on are looking for funding."
|
||
|
else
|
||
|
Bundler.ui.info fund_info.join("\n")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|