module Tapioca::BundlerExt::AutoRequireHook
def autorequire
def autorequire value = super # If autorequire is not enabled, we don't want to force require gems return value unless AutoRequireHook.enabled? # If the gem is excluded, we don't want to force require it, in case # it has side-effects users don't want. For example, `fakefs` gem, if # loaded, takes over filesystem operations. return value if AutoRequireHook.excluded?(name) # If a gem is marked as `require: false`, then its `autorequire` # value will be `[]`. But, we want those gems to be loaded for our # purposes as well, so we return `nil` in those cases, instead, which # means `require: true`. return if value == [] value end
def enabled?
def enabled? @enabled end
def excluded?(name)
def excluded?(name) @exclude.include?(name) end
def override_require_false(exclude:, &blk)
def override_require_false(exclude:, &blk) @enabled = true @exclude = exclude blk.call ensure @enabled = false end