Class: EacRubyUtils::RootModuleSetup
- Defined in:
- lib/eac_ruby_utils/root_module_setup.rb,
lib/eac_ruby_utils/root_module_setup/ignore.rb
Defined Under Namespace
Classes: Ignore
Constant Summary collapse
- DEFAULT_NAMESPACE =
::Object
- LIB_DIRECTORY_BASENAME =
'lib'
Instance Attribute Summary collapse
-
#block ⇒ Object
readonly
Returns the value of attribute block.
-
#root_module_file ⇒ Object
readonly
Returns the value of attribute root_module_file.
Class Method Summary collapse
Instance Method Summary collapse
- #extension_for ⇒ Module?
-
#initialize(root_module_file, &block) ⇒ RootModuleSetup
constructor
A new instance of RootModuleSetup.
- #loader ⇒ Zeitwerk::GemLoader
- #namespace ⇒ Module
- #perform ⇒ void
- #relative_root_module_file ⇒ String
- #root_module_directory ⇒ String
Constructor Details
#initialize(root_module_file, &block) ⇒ RootModuleSetup
Returns a new instance of RootModuleSetup.
24 25 26 27 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 24 def initialize(root_module_file, &block) self.root_module_file = root_module_file self.block = block end |
Instance Attribute Details
#block ⇒ Object
Returns the value of attribute block.
21 22 23 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 21 def block @block end |
#root_module_file ⇒ Object
Returns the value of attribute root_module_file.
21 22 23 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 21 def root_module_file @root_module_file end |
Class Method Details
.perform(root_module_file, &block) ⇒ Object
16 17 18 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 16 def perform(root_module_file, &block) new(root_module_file, &block).perform end |
Instance Method Details
#extension_for ⇒ Module?
30 31 32 33 34 35 36 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 30 def extension_for dirname = ::File.dirname(relative_root_module_file) return nil if ['.', '/', ''].include?(dirname) require dirname ::ActiveSupport::Inflector.constantize(dirname.camelize) end |
#loader ⇒ Zeitwerk::GemLoader
39 40 41 42 43 44 45 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 39 def loader @loader ||= ::Zeitwerk::Registry.loader_for_gem( root_module_file, namespace: namespace, warn_on_extra_files: true ) end |
#namespace ⇒ Module
48 49 50 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 48 def namespace extension_for || DEFAULT_NAMESPACE end |
#perform ⇒ void
This method returns an undefined value.
53 54 55 56 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 53 def perform perform_block perform_zeitwerk end |
#relative_root_module_file ⇒ String
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 59 def relative_root_module_file count = 0 current = ::File.basename(root_module_file, '.*') dirname = ::File.dirname(root_module_file) loop do ibr if dirname == '/' break current if ::File.basename(dirname) == LIB_DIRECTORY_BASENAME current = ::File.join(::File.basename(dirname), current) dirname = ::File.dirname(dirname) count += 1 end end |
#root_module_directory ⇒ String
76 77 78 79 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 76 def root_module_directory ::File.(::File.basename(root_module_file, '.*'), ::File.dirname(root_module_file)) end |