From 9145678a23f86ecc52dc3f89999a864f70c2e2d8 Mon Sep 17 00:00:00 2001
From: Saku Ytti <saku@ytti.fi>
Date: Mon, 23 Feb 2015 20:22:50 +0200
Subject: guard against model returning non-string

Return empty string instead of what ever model returned.

Closes #63
---
 lib/oxidized/model/model.rb | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

(limited to 'lib/oxidized/model')

diff --git a/lib/oxidized/model/model.rb b/lib/oxidized/model/model.rb
index d3f54b9..45de4d7 100644
--- a/lib/oxidized/model/model.rb
+++ b/lib/oxidized/model/model.rb
@@ -133,10 +133,10 @@ module Oxidized
         outputs << out
       end
       procs[:pre].each do |pre_proc|
-        outputs.unshift Oxidized::String.new(instance_eval(&pre_proc))
+        outputs.unshift process_cmd_output(instance_eval(&pre_proc), nil)
       end
       procs[:post].each do |post_proc|
-        outputs << Oxidized::String.new(instance_eval(&post_proc))
+        outputs << process_cmd_output(instance_eval(&post_proc), nil)
       end
       outputs
     end
@@ -152,9 +152,8 @@ module Oxidized
     private
 
     def process_cmd_output output, name
-      if output.class != Oxidized::String
-        output = Oxidized::String.new output
-      end
+      output = Oxidized::String.new output if ::String === output
+      output = Oxidized::String.new '' unless Oxidized::String === output
       output.set_cmd(name)
       output
     end
-- 
cgit v1.2.3


From 628f6dddc8fd41e07dba99e7fb41566b89d954c5 Mon Sep 17 00:00:00 2001
From: Saku Ytti <saku@ytti.fi>
Date: Tue, 24 Feb 2015 15:24:22 +0200
Subject: set_cmd can't be nil

still not sure if this is the right way to guard non-string blocks...
---
 lib/oxidized/model/model.rb | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'lib/oxidized/model')

diff --git a/lib/oxidized/model/model.rb b/lib/oxidized/model/model.rb
index 45de4d7..899b40a 100644
--- a/lib/oxidized/model/model.rb
+++ b/lib/oxidized/model/model.rb
@@ -133,10 +133,10 @@ module Oxidized
         outputs << out
       end
       procs[:pre].each do |pre_proc|
-        outputs.unshift process_cmd_output(instance_eval(&pre_proc), nil)
+        outputs.unshift process_cmd_output(instance_eval(&pre_proc), '')
       end
       procs[:post].each do |post_proc|
-        outputs << process_cmd_output(instance_eval(&post_proc), nil)
+        outputs << process_cmd_output(instance_eval(&post_proc), '')
       end
       outputs
     end
-- 
cgit v1.2.3