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.
- #logging(enable) ⇒ Object
-
#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
- #logging? ⇒ Boolean
- #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.
25 26 27 28 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 25 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 |
#logging(enable) ⇒ Object
32 33 34 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 32 def logging(enable) @logging = enable 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?
42 43 44 45 46 47 48 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 42 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
51 52 53 54 55 56 57 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 51 def loader @loader ||= ::Zeitwerk::Registry.loader_for_gem( root_module_file, namespace: namespace, warn_on_extra_files: true ) end |
#logging? ⇒ Boolean
37 38 39 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 37 def logging? @logging ? true : false end |
#namespace ⇒ Module
60 61 62 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 60 def namespace extension_for || DEFAULT_NAMESPACE end |
#perform ⇒ void
This method returns an undefined value.
65 66 67 68 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 65 def perform perform_block perform_zeitwerk end |
#relative_root_module_file ⇒ String
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 71 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
88 89 90 91 |
# File 'lib/eac_ruby_utils/root_module_setup.rb', line 88 def root_module_directory ::File.(::File.basename(root_module_file, '.*'), ::File.dirname(root_module_file)) end |