Class: EXEL::Job::Parser
- Inherits:
-
Object
- Object
- EXEL::Job::Parser
- Defined in:
- lib/exel/job.rb
Overview
Defines the EXEL DSL methods and is used to convert a block of Ruby code into an abstract syntax tree (AST)
Instance Attribute Summary collapse
-
#ast ⇒ Object
readonly
Returns the value of attribute ast.
Class Method Summary collapse
Instance Method Summary collapse
- #async(options = {}, &block) ⇒ Object
- #context ⇒ Object
-
#initialize ⇒ Parser
constructor
A new instance of Parser.
- #listen(options) ⇒ Object
- #process(options, &block) ⇒ Object
- #run(options = {}, &block) ⇒ Object
- #split(options = {}, &block) ⇒ Object
Constructor Details
#initialize ⇒ Parser
Returns a new instance of Parser.
48 49 50 |
# File 'lib/exel/job.rb', line 48 def initialize @ast = SequenceNode.new end |
Instance Attribute Details
#ast ⇒ Object (readonly)
Returns the value of attribute ast.
46 47 48 |
# File 'lib/exel/job.rb', line 46 def ast @ast end |
Class Method Details
Instance Method Details
#async(options = {}, &block) ⇒ Object
67 68 69 |
# File 'lib/exel/job.rb', line 67 def async( = {}, &block) add_instruction_node(Processors::AsyncProcessor, parse(block), ) end |
#context ⇒ Object
84 85 86 |
# File 'lib/exel/job.rb', line 84 def context DeferredContextValue.new end |
#listen(options) ⇒ Object
79 80 81 82 |
# File 'lib/exel/job.rb', line 79 def listen() instruction = ListenInstruction.new(.fetch(:for), .fetch(:with)) @ast.add_child(InstructionNode.new(instruction)) end |
#process(options, &block) ⇒ Object
62 63 64 65 |
# File 'lib/exel/job.rb', line 62 def process(, &block) processor_class = .delete(:with) add_instruction_node(processor_class, parse(block), ) end |
#run(options = {}, &block) ⇒ Object
75 76 77 |
# File 'lib/exel/job.rb', line 75 def run( = {}, &block) add_instruction_node(Processors::RunProcessor, parse(block), ) end |
#split(options = {}, &block) ⇒ Object
71 72 73 |
# File 'lib/exel/job.rb', line 71 def split( = {}, &block) add_instruction_node(Processors::SplitProcessor, parse(block), ) end |