Module: AdHocTemplate::RecordReader

Defined in:
lib/ad_hoc_template/record_reader.rb

Defined Under Namespace

Modules: CSVReader, JSONReader, YAMLReader Classes: BaseReader, BlockReader, IterationReader, KeyValueReader, Reader, ReaderState

Constant Summary collapse

SEPARATOR =
/:\s*/o
BLOCK_HEAD =
/\A\/\/@/o
ITERATION_HEAD =
/\A\/\/@#/o
EMPTY_LINE =
/\A(?:\r?\n|\r)\Z/o
ITERATION_MARK =
/\A#/o
READERS_RE =
{
  key_value: SEPARATOR,
  iteration: ITERATION_HEAD,
  block: BLOCK_HEAD,
  empty_line: EMPTY_LINE,
}

Class Method Summary collapse

Class Method Details

.read_record(input, source_format = :default) ⇒ Object



268
269
270
271
272
273
274
275
276
277
278
279
# File 'lib/ad_hoc_template/record_reader.rb', line 268

def self.read_record(input, source_format=:default)
  case source_format
  when :default
    ReaderState.new.read_record(input)
  when :yaml
    YAMLReader.read_record(input)
  when :json
    JSONReader.read_record(input)
  when :csv, :tsv, Hash
    CSVReader.read_record(input, source_format)
  end
end