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