Method: Jets::Lambda::Task#get_type
- Defined in:
- lib/jets/lambda/task.rb
#get_type ⇒ Object
The get_type method works for controller and job classes.
Usually able to get the type from the class name. Examples:
PostsController => controller
HardJob => job
However, for function types, we are not able to get the type for multiple of reasons. First, function types are allowed to be named with or without _function. Examples:
path => class => type
app/functions/hello.rb => Hello => function
app/functions/hello_function.rb => HelloFunction => function
The second reason is that functions are not regular ruby classes. Instead they are anonymous classes created with Class.new. When classes are created with Class.new the method_added hook has “” (blank string) as the self class name. We add the class_type to the task later on as we are constructing the class as part of the Class.new logic.
For controller and job standard ruby classes though it can easily be determinated as part of initialization. So we get the type for convenience then.
For anonymous function classes, we just set to nil and will later fix in FunctionConstructor.
Returns: “controller”, “job” or nil
76 77 78 79 80 |
# File 'lib/jets/lambda/task.rb', line 76 def get_type unless @class_name.empty? # when anonymous class is created with Class.new @class_name.underscore.split('_').last # controller, job or rule end end |