From 9145678a23f86ecc52dc3f89999a864f70c2e2d8 Mon Sep 17 00:00:00 2001 From: Saku Ytti 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/model.rb') 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.1 From 628f6dddc8fd41e07dba99e7fb41566b89d954c5 Mon Sep 17 00:00:00 2001 From: Saku Ytti 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/model.rb') 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.1