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.
49 50 51 |
# File 'lib/exel/job.rb', line 49 def initialize @ast = SequenceNode.new end |
Instance Attribute Details
#ast ⇒ Object (readonly)
Returns the value of attribute ast.
47 48 49 |
# File 'lib/exel/job.rb', line 47 def ast @ast end |
Class Method Details
Instance Method Details
#async(options = {}, &block) ⇒ Object
68 69 70 |
# File 'lib/exel/job.rb', line 68 def async( = {}, &block) add_instruction_node(Processors::AsyncProcessor, parse(block), ) end |
#context ⇒ Object
85 86 87 |
# File 'lib/exel/job.rb', line 85 def context DeferredContextValue.new end |
#listen(options) ⇒ Object
80 81 82 83 |
# File 'lib/exel/job.rb', line 80 def listen() instruction = ListenInstruction.new(.fetch(:for), .fetch(:with)) @ast.add_child(InstructionNode.new(instruction)) end |
#process(options, &block) ⇒ Object
63 64 65 66 |
# File 'lib/exel/job.rb', line 63 def process(, &block) processor_class = .delete(:with) add_instruction_node(processor_class, parse(block), ) end |
#run(options = {}, &block) ⇒ Object
76 77 78 |
# File 'lib/exel/job.rb', line 76 def run( = {}, &block) add_instruction_node(Processors::RunProcessor, parse(block), ) end |
#split(options = {}, &block) ⇒ Object
72 73 74 |
# File 'lib/exel/job.rb', line 72 def split( = {}, &block) add_instruction_node(Processors::SplitProcessor, parse(block), ) end |