lib/oddb2xml/util.rb in oddb2xml-2.2.3 vs lib/oddb2xml/util.rb in oddb2xml-2.2.4

- old
+ new

@@ -1,5 +1,6 @@ +# encoding: utf-8 require 'open-uri' module Oddb2xml def Oddb2xml.calc_checksum(str) str = str.strip sum = 0 @@ -72,11 +73,11 @@ row = sheet[4] # Headers are found at row 4 error_2015 = nil COLUMNS_JULY_2015.each{ |key, value| - header_name = row[COLUMNS_JULY_2015.keys.index(key)].value + header_name = row[COLUMNS_JULY_2015.keys.index(key)].value.to_s unless value.match(header_name) puts "#{__LINE__}: #{key} -> #{COLUMNS_JULY_2015.keys.index(key)} #{value}\nbut was #{header_name}" if $VERBOSE error_2015 = "Packungen.xlslx_has_unexpected_column_#{COLUMNS_JULY_2015.keys.index(key)}_#{key}_#{value.to_s}_but_was_#{header_name}" break end @@ -108,6 +109,33 @@ :indication_sequence => /Anwendungsgebiet Dosisstärke/i, :gen_production => /Gentechnisch hergestellte Wirkstoffe/i, # column-nr 20 :insulin_category => /Kategorie bei Insulinen/i, :drug_index => /Verz. bei betäubunsmittel-haltigen Präparaten/i, } + + def Oddb2xml.add_hash(string) + doc = Nokogiri::XML.parse(string) + nr = 0 + doc.root.elements.each do |node| + nr += 1 + next if node.name.eql?('RESULT') + node['SHA256'] = Digest::SHA256.hexdigest node.text + end + doc.to_xml + end + + def Oddb2xml.verify_sha256(file) + f = File.open(file) + doc = Nokogiri::XML(f) + nr = 0 + doc.root.elements.each do |node| + nr += 1 + next if node.name.eql?('RESULT') + sha256 = Digest::SHA256.hexdigest node.text + unless node['SHA256'].eql?(sha256) + puts "Verifiying #{node['SHA256']} != expectd #{sha256} against node #{node.text} failed" + exit (3) + end + end + return true + end end