mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-05-01 03:00:26 -04:00
* Add require const to require_gem. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Move gem setup to separate step in workflows. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Use Package Deltas as PR title. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Change version of Generate PR workflow. Signed-off-by: Satadru Pramanik <satadru@gmail.com> --------- Signed-off-by: Satadru Pramanik <satadru@gmail.com>
33 lines
1.4 KiB
Ruby
33 lines
1.4 KiB
Ruby
require_relative 'color'
|
|
require_relative 'const'
|
|
|
|
def require_gem(ruby_gem_name_and_require = nil, require_override = nil)
|
|
# Allow only loading gems when needed.
|
|
return if ruby_gem_name_and_require.nil?
|
|
|
|
ruby_gem_name = ruby_gem_name_and_require.split('/')[0]
|
|
begin
|
|
gem ruby_gem_name
|
|
rescue NoMethodError, Gem::MissingSpecError
|
|
# Handle possible error immediately after a gem uninstall.
|
|
# e.g.,
|
|
# Gem::Specification#activate_dependencies': Could not find 'rubocop' (>= 0) among 150 total gem(s) (Gem::MissingSpecError)
|
|
require 'rubygems/gem_runner'
|
|
Gem::GemRunner.new.run %w[check doctor #{ruby_gem_name}]
|
|
Gem::GemRunner.new.run ['sources', '-u']
|
|
puts " -> install #{ruby_gem_name} gem".orange CREW_OUTPUT_JSON if CREW_VERBOSE && !CREW_OUTPUT_JSON
|
|
system "gem install #{ruby_gem_name} -N #{'--silent -q' unless CREW_VERBOSE && !CREW_OUTPUT_JSON}"
|
|
gem ruby_gem_name
|
|
rescue LoadError
|
|
puts " -> install #{ruby_gem_name} gem".orange if CREW_VERBOSE && !CREW_OUTPUT_JSON
|
|
system "gem install #{ruby_gem_name} -N #{'--silent -q' unless CREW_VERBOSE && !CREW_OUTPUT_JSON}"
|
|
gem ruby_gem_name
|
|
end
|
|
requires = if require_override.nil?
|
|
ruby_gem_name_and_require.split('/')[1].nil? ? ruby_gem_name_and_require.split('/')[0] : ruby_gem_name_and_require
|
|
else
|
|
require_override
|
|
end
|
|
require requires
|
|
end
|