Method: Jets::Klass.load_anonymous_class

Defined in:
lib/jets/klass.rb

.load_anonymous_class(class_name, path) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/jets/klass.rb', line 63

def load_anonymous_class(class_name, path)
  parent_mod = modularize(class_name)

  constructor = Jets::Lambda::FunctionConstructor.new(path)
  # Dont load anonyomous class more than once to avoid these warnings:
  #   warning: already initialized constant Hello
  #   warning: previous definition of Hello was here
  unless @@loaded_anonymous_classes.include?(class_name)
    # use class_name as the variable name for prettier class name.
    leaf_class_name = class_name.split('::').last
    parent_mod.const_set(leaf_class_name, constructor.build)
    @@loaded_anonymous_classes << class_name
  end

  class_name
end