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