Module: GemfileUtils::Cli::Licenses

Included in:
Base
Defined in:
lib/gemfile_utils/cli/modules/licenses.rb

Class Method Summary collapse

Class Method Details

.included(thor) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/gemfile_utils/cli/modules/licenses.rb', line 5

def self.included(thor)
  thor.class_eval do
    desc 'licenses', 'Comment Gemfile with gems all dependencies licences fetched from rubygems'
    method_option :gemfile, default: 'Gemfile'

    def licenses
      licenses_list = []
      gemfile_dependencies.each do |dependency|
        l = ruby_gems(dependency.name)['licenses']
        l =  Base::UNKNOWN_LICENCES if l.nil? || l.empty?
        licenses_list += l
      end

      prepend_to_file options[:gemfile], comment_block(licenses_comment(licenses_list))
    end

    private
    def licenses_comment(list)
      safe_encode "Licenses: #{list.uniq.sort}"
    end
  end
end