From b00f49ade6338da0f6766211a749d2000d36899b Mon Sep 17 00:00:00 2001 From: Torsten Ruger Date: Wed, 20 May 2015 10:41:05 +0300 Subject: [PATCH] make to hash and array functions reusable for parfait --- lib/sof/array.rb | 15 ++++++++++----- lib/sof/hash.rb | 13 ++++++++----- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/lib/sof/array.rb b/lib/sof/array.rb index 1ee0394..b9ef85b 100644 --- a/lib/sof/array.rb +++ b/lib/sof/array.rb @@ -20,7 +20,7 @@ module Sof long_out(io , level) end end - + private def short_out(io,level) io.write("[") @@ -39,13 +39,18 @@ module Sof end end end -end -Array.class_eval do - def to_sof_node(writer , level , ref ) + + def self.array_to_sof_node(array , writer , level , ref ) node = Sof::ArrayNode.new(ref) - each do |object| + array.each do |object| node.add writer.to_sof_node( object , level + 1) end node end + +end +Array.class_eval do + def to_sof_node(writer , level , ref ) + Sof.array_to_sof_node(self , writer , level , ref ) + end end diff --git a/lib/sof/hash.rb b/lib/sof/hash.rb index ad3c4aa..6b1e725 100644 --- a/lib/sof/hash.rb +++ b/lib/sof/hash.rb @@ -44,17 +44,20 @@ module Sof end end end -end -Hash.class_eval do - def to_sof_node(writer , level , ref) + def self.hash_to_sof_node(hash,writer , level , ref) node = Sof::HashNode.new(ref) - each do |key , object| + hash.each do |key , object| k = writer.to_sof_node( key ,level + 1) - v = writer.to_sof_node( object ,level +1) + v = writer.to_sof_node( object ,level + 1) node.add(k , v) end node end end +Hash.class_eval do + def to_sof_node(writer , level , ref) + Sof.hash_to_sof_node( self , writer , level , ref) + end +end