Class: EXEL::Job::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/exel/job.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeParser

Returns a new instance of Parser.



33
34
35
# File 'lib/exel/job.rb', line 33

def initialize
  @ast = SequenceNode.new
end

Instance Attribute Details

#astObject (readonly)

Returns the value of attribute ast.



31
32
33
# File 'lib/exel/job.rb', line 31

def ast
  @ast
end

Class Method Details

.parse(dsl_proc_or_code) ⇒ Object



37
38
39
40
41
42
43
44
45
# File 'lib/exel/job.rb', line 37

def self.parse(dsl_proc_or_code)
  parser = Parser.new
  if dsl_proc_or_code.is_a?(::Proc)
    parser.instance_eval(&dsl_proc_or_code)
  else
    parser.instance_eval(dsl_proc_or_code)
  end
  parser.ast
end

Instance Method Details

#async(options = {}, &block) ⇒ Object



52
53
54
# File 'lib/exel/job.rb', line 52

def async(options = {}, &block)
  add_instruction_node('async', Processors::AsyncProcessor, block, options)
end

#contextObject



60
61
62
# File 'lib/exel/job.rb', line 60

def context
  DeferredContextValue.new
end

#process(options, &block) ⇒ Object



47
48
49
50
# File 'lib/exel/job.rb', line 47

def process(options, &block)
  processor_class = options.delete(:with)
  add_instruction_node('process', processor_class, block, options)
end

#split(options = {}, &block) ⇒ Object



56
57
58
# File 'lib/exel/job.rb', line 56

def split(options = {}, &block)
  add_instruction_node('split', Processors::SplitProcessor, block, options)
end