class AdHocTemplate::RecordReader::DefaultFormReader::Reader

Public Class Methods

new(stack, readers) click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 282
def initialize(stack, readers)
  @stack = stack
  @readers = readers
end
setup_reader(stack) click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 270
def self.setup_reader(stack)
  readers = {}
  {
    base: BaseReader,
    key_value: KeyValueReader,
    block: BlockReader,
    iteration: IterationReader,
  }.each {|k, v| readers[k] = v.new(stack, readers) }
  stack.push readers[:base]
  readers
end

Public Instance Methods

pop_stack() click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 287
def pop_stack
  @stack.pop
end
read(line) click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 291
def read(line); end

Private Instance Methods

push_reader_if_match(line, readers) click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 295
def push_reader_if_match(line, readers)
  readers.each do |reader|
    if READERS_RE[reader].match?(line)
      return @stack.push(@readers[reader])
    end
  end
end
setup_new_block(line, initial_value) click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 303
def setup_new_block(line, initial_value)
  label = line.sub(BLOCK_HEAD, '').chomp
  @stack.current_record[label] ||= initial_value
  @stack.current_block_label = label
end