Sha256: dd127247aee822d8b4b8427295086a79547a778220d26080c77ac5e52547d52a
Contents?: true
Size: 1.81 KB
Versions: 1
Compression:
Stored size: 1.81 KB
Contents
module Eancom module Edifact class Structure class KeyNotFoundError < StandardError; end attr_reader :tag attr_accessor :composites def initialize(tag:) @tag = tag @composites = [] end def <<(composite) @composites << composite end def validate!(key, value) data = find(key) data.valid?(key, value) end # TODO: Find on Array?? def find(key) @composites.each do |composite| data = composite.get(key) return data if data end raise KeyNotFoundError.new("Key #{key} not found.") end def build_hash(array) hash = {} structure_array = structure_array() structure_array.each_with_index do |v1, i1| v1.each_with_index do |v2, i2| if array[i1] && array[i1][i2] hash[structure_array[i1][i2]] = array[i1][i2] end end end hash end def build_array(hash) array = [] structure_array = structure_array() structure_array.each_with_index do |v1, i1| inner_array = [] v1.each_with_index do |v2, i2| inner_array << hash[v2] end array << inner_array end array end def to_s structure_array end def dictionary_lookup(identifier, value) if data = find(identifier) dictionary = data.dictionary dictionary.each do |k, v| if v[:identifier] == value return k end end else value end end private def structure_array array = [] @composites.each do |c| array << c.to_array end array end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
eancom-2.0.0 | lib/eancom/edifact/structure.rb |