Sha256: 0ca047b4944d745852ec821ce2281dfe6050fa2840a6b6ac0787bd2572efeb8f
Contents?: true
Size: 1012 Bytes
Versions: 11
Compression:
Stored size: 1012 Bytes
Contents
module Qa::Authorities module MeshTools class MeshDataParser attr_accessor :file def initialize(file) @file = file end def each_mesh_record(&block) current_data = {} in_record = false self.file.each_line do |line| case line when /\A\*NEWRECORD/ yield(current_data) if in_record in_record = true current_data = {} when /\A(?<term>[^=]+) = (?<value>.*)/ current_data[Regexp.last_match(:term)] ||= [] current_data[Regexp.last_match(:term)] << Regexp.last_match(:value).strip when /\A\n/ yield(current_data) if in_record in_record = false end end # final time in case file did not end with a blank line yield(current_data) if in_record end def all_records result = [] self.each_mesh_record {|rec| result << rec } return result end end end end
Version data entries
11 entries across 11 versions & 1 rubygems