Class: Jets::Lambda::FunctionConstructor
- Inherits:
-
Object
- Object
- Jets::Lambda::FunctionConstructor
- Defined in:
- lib/jets/lambda/function_constructor.rb
Instance Method Summary collapse
-
#adjust_definitions(klass) ⇒ Object
For anonymous classes method_added during definition registration contains “” for the class name.
- #build ⇒ Object
-
#initialize(code_path) ⇒ FunctionConstructor
constructor
A new instance of FunctionConstructor.
Constructor Details
#initialize(code_path) ⇒ FunctionConstructor
Returns a new instance of FunctionConstructor.
31 32 33 |
# File 'lib/jets/lambda/function_constructor.rb', line 31 def initialize(code_path) @code_path = "#{Jets.root}/#{code_path}" end |
Instance Method Details
#adjust_definitions(klass) ⇒ Object
For anonymous classes method_added during definition registration contains “” for the class name. We adjust it here.
45 46 47 48 49 50 51 52 |
# File 'lib/jets/lambda/function_constructor.rb', line 45 def adjust_definitions(klass) class_name = @code_path.to_s.sub(/.*\/functions\//, "").sub(/\.rb$/, "") class_name = class_name.camelize klass.definitions.each do |definition| definition.class_name = class_name definition.type = "function" end end |
#build ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/jets/lambda/function_constructor.rb', line 35 def build code = IO.read(@code_path) function_klass = Class.new(Jets::Lambda::Function) function_klass.module_eval(code, @code_path) adjust_definitions(function_klass) function_klass # assign this to a Constant for a pretty class name end |