Module: Antlers::Namespace

Included in:
PropNode, SlotNode
Defined in:
lib/modules/namespace.rb

Instance Method Summary collapse

Instance Method Details

#class_constant(namespace:, name:) ⇒ Object



5
6
7
8
9
# File 'lib/modules/namespace.rb', line 5

def class_constant(namespace:, name:)
  return Object.const_get(name) if name.start_with?('::')

  class_from_namespace(namespace:, name:)
end

#class_from_namespace(namespace:, name:) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/modules/namespace.rb', line 11

def class_from_namespace(namespace:, name:)
  namespace_with_name = [namespace, name].join('::')
  return Object.const_get(namespace_with_name) if Object.const_defined?(namespace_with_name)

  namespace.pop
  class_from_namespace(namespace:, name:)
end