Added MsgGroup handling to edi2json
authormbklein <mbklein@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Wed, 3 Mar 2010 22:01:02 +0000 (22:01 +0000)
committermbklein <mbklein@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Wed, 3 Mar 2010 22:01:02 +0000 (22:01 +0000)
git-svn-id: svn://svn.open-ils.org/ILS-Contrib/acq_edi/trunk@814 6d9bc8c9-1ec2-4278-b937-99fde70a366f

lib/edi/edi2json.rb

index c660ab5..f92f5c6 100644 (file)
@@ -31,6 +31,9 @@ class Collection
           end
         end
       end
+      if (result[child.name].is_a?(Array) or result[child.name].is_a?(Hash)) and result[child.name].empty?
+        result.delete(child.name)
+      end
     }
     
     # Segment groups last
@@ -57,7 +60,11 @@ class Interchange
     
     messages = []
     self.each { |message|
-      messages << {message.name => message.to_hash}
+      if message.is_a?(MsgGroup)
+        messages += message.to_hash
+      else
+        messages << {message.name => message.to_hash}
+      end
     }
     
     {
@@ -90,6 +97,14 @@ class Message
   
 end
 
+class MsgGroup
+  
+  def to_hash
+    self.collect { |msg| { msg.name => msg.to_hash } }
+  end
+  
+end
+
 class E::UNA
   def to_hash
     result = {}