Class: Hanami::Utils::Class
- Inherits:
-
Object
- Object
- Hanami::Utils::Class
- Defined in:
- lib/hanami/utils/class.rb
Overview
Class utilities
Class Method Summary collapse
-
.load(name, namespace = Object) ⇒ Class, ...
Loads a class for the given name, only if it’s defined.
-
.load!(name, namespace = Object) ⇒ Class, Module
Loads a class for the given name.
-
.load_from_pattern!(pattern, namespace = Object) ⇒ Class, Module
Loads a class from the given pattern name and namespace.
Class Method Details
.load(name, namespace = Object) ⇒ Class, ...
Loads a class for the given name, only if it’s defined.
71 72 73 |
# File 'lib/hanami/utils/class.rb', line 71 def self.load(name, namespace = Object) load!(name, namespace) if namespace.const_defined?(name.to_s, false) end |
.load!(name, namespace = Object) ⇒ Class, Module
Loads a class for the given name.
40 41 42 |
# File 'lib/hanami/utils/class.rb', line 40 def self.load!(name, namespace = Object) namespace.const_get(name.to_s, false) end |
.load_from_pattern!(pattern, namespace = Object) ⇒ Class, Module
Loads a class from the given pattern name and namespace
112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/hanami/utils/class.rb', line 112 def self.load_from_pattern!(pattern, namespace = Object) String.new(pattern).tokenize do |token| begin return namespace.const_get(token, false) rescue NameError # rubocop:disable Lint/HandleExceptions end end full_name = [(namespace == Object ? nil : namespace), pattern].compact.join('::') raise NameError.new("uninitialized constant #{full_name}") end |