# File lib/edi4r/standards.rb, line 402 def each_BCDS( id, &b ) list = nil case id when /^[CES]\d{3}$/ # C)omposite list = cde(id) when /^\d{4}$/ # Simple D)E list = de(id) when /^[A-Z]{3}$/ # S)egment list = segment(id) when /^[A-Z]{6}:$/ # Message B)ranch list = message(id) # Workaround for the IDoc case: # We identify entry type by a (intermediate) prefix # when /^d(.*)$/ # Simple D)E list = de($1) when /^s(.*)$/ # S)egment, SAP IDOC list = segment($1) when /^m(.*)$/ # Message B)ranch list = message($1) else # Should never occur raise IndexError, "Not a legal BCDS entry id: '#{id}'" end raise EDILookupError, "#{id} not in directory!" if list.nil? list.each( &b ) end