# encoding: utf-8 require 'fedux_org_stdlib/core_ext/array' module FeduxOrgStdlib module RequireFiles def require_library(libraries, message_template = 'You need to install %s to make "%s" work.') libraries = Array(libraries) begin libraries.each { |l| require l } rescue LoadError => e $stderr.puts format(message_template, libraries.map { |l| l.split(%r{/}).first }.uniq.to_list, caller[1].split(/:/)[0,2].join(':')) $stderr.puts $stderr.puts e.message exit 1 end end def require_installed_gem(gems, message_template = 'You need to install %s to make "%s" work.') gems = Array(gems) raise LoadError, JSON.dump(gems: gems) if gems.any? { |name| Gem::Specification.find_all_by_name(name).blank? } end end end include FeduxOrgStdlib::RequireFiles