2020-10-10 17:53:31 +02:00
|
|
|
# typed: strict
|
2020-09-20 05:57:37 +02:00
|
|
|
# frozen_string_literal: true
|
2020-06-14 11:40:07 +05:30
|
|
|
|
2024-02-01 09:40:31 -08:00
|
|
|
# These should not be made constants or Tapioca will think they are part of a gem.
|
2021-09-10 21:21:05 +01:00
|
|
|
dependency_require_map = {
|
2024-01-26 15:09:03 -08:00
|
|
|
"ruby-macho" => "macho",
|
2021-09-10 21:21:05 +01:00
|
|
|
}.freeze
|
|
|
|
|
2024-02-01 09:40:31 -08:00
|
|
|
additional_requires_map = {
|
2024-11-01 17:57:51 -07:00
|
|
|
"parser" => ["parser/current"],
|
2024-03-17 22:47:37 -07:00
|
|
|
"rubocop-rspec" => ["rubocop/rspec/expect_offense"],
|
2024-02-01 09:40:31 -08:00
|
|
|
}.freeze
|
|
|
|
|
2022-11-04 05:42:42 +00:00
|
|
|
# Freeze lockfile
|
|
|
|
Bundler.settings.set_command_option(:frozen, "1")
|
|
|
|
|
|
|
|
definition = Bundler.definition
|
|
|
|
definition.resolve.for(definition.current_dependencies).each do |spec|
|
2021-09-10 21:21:05 +01:00
|
|
|
name = spec.name
|
|
|
|
|
2022-05-28 04:07:02 +01:00
|
|
|
# These sorbet gems do not contain any library files
|
2021-09-10 21:21:05 +01:00
|
|
|
next if name == "sorbet"
|
|
|
|
next if name == "sorbet-static"
|
2022-05-28 04:07:02 +01:00
|
|
|
next if name == "sorbet-static-and-runtime"
|
2021-09-10 21:21:05 +01:00
|
|
|
|
|
|
|
name = dependency_require_map[name] if dependency_require_map.key?(name)
|
|
|
|
require name
|
2024-02-01 09:40:31 -08:00
|
|
|
additional_requires_map[name]&.each { require(_1) }
|
2021-09-10 21:21:05 +01:00
|
|
|
rescue LoadError
|
|
|
|
raise unless name.include?("-")
|
|
|
|
|
|
|
|
name = name.tr("-", "/")
|
|
|
|
require name
|
|
|
|
end
|