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 |