Module: AdHocTemplate::RecordReader
- Defined in:
- lib/ad_hoc_template/record_reader.rb
Defined Under Namespace
Modules: CSVReader, DefaultFormReader, JSONReader, TSVReader, YAMLReader
Constant Summary
collapse
- FORMAT_NAME_TO_READER =
{
yaml: YAMLReader,
json: JSONReader,
csv: CSVReader,
tsv: TSVReader,
default: DefaultFormReader,
}.tap {|h| h.default = DefaultFormReader }.freeze
Class Method Summary
collapse
Class Method Details
.convert_values_to_string(data) ⇒ Object
465
466
467
468
469
470
471
472
473
|
# File 'lib/ad_hoc_template/record_reader.rb', line 465
def self.convert_values_to_string(data)
data.each do |k, v|
if v.kind_of? Array
v.each {|sub_rec| convert_values_to_string(sub_rec) }
elsif v && !v.kind_of?(String)
data[k] = v.to_s
end
end
end
|
.dump(data_source, target_format = :default) ⇒ Object
448
449
450
|
# File 'lib/ad_hoc_template/record_reader.rb', line 448
def self.dump(data_source, target_format=:default)
FORMAT_NAME_TO_READER[target_format].dump(data_source)
end
|
.parse_if_necessary(source) ⇒ Object
461
462
463
|
# File 'lib/ad_hoc_template/record_reader.rb', line 461
def self.parse_if_necessary(source)
source.kind_of?(String) ? read_record(source) : source
end
|
.read_record(input, source_format = :default) ⇒ Object
452
453
454
455
456
457
458
459
|
# File 'lib/ad_hoc_template/record_reader.rb', line 452
def self.read_record(input, source_format=:default)
case source_format
when :csv, :tsv, Hash
CSVReader.read_record(input, source_format)
else
FORMAT_NAME_TO_READER[source_format].read_record(input)
end
end
|