class AdHocTemplate::RecordReader::DefaultFormReader::ReaderState

Attributes

current_block_label[RW]

Public Class Methods

new(config={}, stack=[]) click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 196
def initialize(config={}, stack=[])
  @stack = stack
  @configs = [config]
  setup_reader
end

Public Instance Methods

current_reader() click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 214
def current_reader
  @stack[-1]
end
current_record() click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 232
def current_record
  @configs[-1]
end
last_block_value() click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 250
def last_block_value
  current_record[current_block_label]
end
parsed_record() click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 236
def parsed_record
  @configs[0]
end
pop() click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 206
def pop
  @stack.pop unless @stack.length == 1
end
pop_current_record() click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 228
def pop_current_record
  @configs.pop
end
push(reader) click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 202
def push(reader)
  @stack.push reader
end
push_new_record() click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 222
def push_new_record
  new_record = {}
  @configs.push new_record
  new_record
end
read(line) click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 218
def read(line)
  @stack[-1].read(line)
end
read_record(lines) click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 240
def read_record(lines)
  lines = lines.each_line.to_a if lines.kind_of? String
  lines.each do |line|
    setup_stack(line)
    read(line)
  end
  remove_trailing_empty_lines_from_last_block!
  parsed_record
end
remove_trailing_empty_lines_from_last_block!() click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 254
def remove_trailing_empty_lines_from_last_block!
  if current_reader.kind_of? BlockReader
    last_block_value.sub!(/(#{$/})+\Z/, $/)
  end
end
setup_stack(line) click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 210
def setup_stack(line)
  @stack[-1].setup_stack(line)
end

Private Instance Methods

setup_reader() click to toggle source
# File lib/ad_hoc_template/record_reader.rb, line 262
def setup_reader
  Reader.setup_reader(self)
end