Sha256: 81c348f543170cb1341a0773b87ffa3b4cd73dc7e2099a69044d7b0eb9dec7ba
Contents?: true
Size: 1.63 KB
Versions: 6
Compression:
Stored size: 1.63 KB
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 ### XXX: delete everything below? def self.get_synonyms(record) return [] if record['ENTRY'].blank? record['ENTRY'].map { |synonym| synonym.split('|').first } end def self.get_print_synonyms(record) return [] if record['PRINT ENTRY'].blank? record['PRINT ENTRY'].map { |synonym| synonym.split('|').first } end def self.get_description(record) return [] if record['MS'].blank? record['MS'] end def self.get_tree(record) return [] if record['MN'].blank? record['MN'] end def self.get_term(record) record['MH'].first end end end end
Version data entries
6 entries across 6 versions & 1 rubygems