Module: Boxcars::OptionalDependency
- Defined in:
- lib/boxcars/optional_dependency.rb
Overview
Helper for feature-gated dependencies that are not required for core runtime.
Class Method Summary collapse
Class Method Details
.require!(gem_name, feature:, require_as: gem_name) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/boxcars/optional_dependency.rb', line 8 def self.require!(gem_name, feature:, require_as: gem_name) cache_key = "#{gem_name}:#{require_as}" return true if @loaded[cache_key] require require_as @loaded[cache_key] = true true rescue LoadError raise Boxcars::ConfigurationError, "#{feature} requires the optional gem '#{gem_name}'. " \ "Add `gem \"#{gem_name}\"` to your Gemfile." end |