Class: RuboCop::FeatureLoader Private
- Inherits:
-
Object
- Object
- RuboCop::FeatureLoader
- Defined in:
- lib/rubocop/feature_loader.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
This class handles loading files (a.k.a. features in Ruby) specified
by --require
command line option and require
directive in the config.
Normally, the given string is directly passed to require
. If a string
beginning with .
is given, it is assumed to be relative to the given
directory.
If a string containing -
is given, it will be used as is, but if we
cannot find the file to load, we will replace -
with /
and try it
again as when Bundler loads gems.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(config_directory_path:, feature:) ⇒ FeatureLoader
constructor
private
A new instance of FeatureLoader.
- #load ⇒ Object private
Constructor Details
#initialize(config_directory_path:, feature:) ⇒ FeatureLoader
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of FeatureLoader.
27 28 29 30 |
# File 'lib/rubocop/feature_loader.rb', line 27 def initialize(config_directory_path:, feature:) @config_directory_path = config_directory_path @feature = feature end |
Class Method Details
.load(config_directory_path:, feature:) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
20 21 22 |
# File 'lib/rubocop/feature_loader.rb', line 20 def load(config_directory_path:, feature:) new(config_directory_path: config_directory_path, feature: feature).load end |
Instance Method Details
#load ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/rubocop/feature_loader.rb', line 32 def load # Don't use `::Kernel.require(target)` to prevent the following error: # https://github.com/rubocop/rubocop/issues/10893 require(target) rescue ::LoadError => e raise if e.path != target begin # Don't use `::Kernel.require(target)` to prevent the following error: # https://github.com/rubocop/rubocop/issues/10893 require(namespaced_target) rescue ::LoadError => error_for_namespaced_target # NOTE: This wrap is necessary due to JRuby 9.3.4.0 incompatibility: # https://github.com/jruby/jruby/issues/7316 raise LoadError, e if error_for_namespaced_target.path == namespaced_target raise error_for_namespaced_target end end |