Module: AdHocTemplate::RecordReader::DefaultFormReader

Defined in:
lib/ad_hoc_template/record_reader.rb

Defined Under Namespace

Classes: BaseReader, BlockReader, IterationReader, KeyValueReader, Reader, ReaderState

Constant Summary collapse

SEPARATOR =
/:\s*/o
BLOCK_HEAD =
%r{\A///@}
ITERATION_HEAD =
%r{\A///@#}
EMPTY_LINE =
/\A#{LINE_END_STR}\Z/o
ITERATION_MARK =
/\A#/o
COMMENT_HEAD =
%r{\A////}
READERS_RE =
{
  key_value: SEPARATOR,
  iteration: ITERATION_HEAD,
  block: BLOCK_HEAD,
  empty_line: EMPTY_LINE,
}.freeze

Class Method Summary collapse

Class Method Details

.dump(labels) ⇒ Object



386
387
388
389
390
391
392
393
394
395
# File 'lib/ad_hoc_template/record_reader.rb', line 386

def self.dump(labels)
  iteration_keys, kv_keys, block_keys = categorize_keys(labels)

  key_value_part = format_key_value_pairs(kv_keys, labels)
  iteration_part = format_iteration_block(iteration_keys, labels)
  block_part = format_key_value_block(block_keys, labels)

  all_parts = [key_value_part, iteration_part, block_part].join($/)
  remove_redundant_newlines(all_parts)
end

.read_record(input) ⇒ Object



382
383
384
# File 'lib/ad_hoc_template/record_reader.rb', line 382

def self.read_record(input)
  ReaderState.new.read_record(input)
end