diff options
| author | Saku Ytti <saku@ytti.fi> | 2014-08-13 15:12:09 +0300 | 
|---|---|---|
| committer | Saku Ytti <saku@ytti.fi> | 2014-08-13 15:12:09 +0300 | 
| commit | a0115f27c17317cb9d2a2e4012cdbbb88b987063 (patch) | |
| tree | ab0d310b914dcf524d421732b329002e6c42aa8e | |
| parent | ef1735ffdadb10371036989b10756d341b64d292 (diff) | |
fix pre/post blocks
| -rw-r--r-- | lib/oxidized/model/model.rb | 8 | ||||
| -rw-r--r-- | lib/oxidized/model/outputs.rb | 4 | ||||
| -rw-r--r-- | lib/oxidized/string.rb | 9 | 
3 files changed, 17 insertions, 4 deletions
| diff --git a/lib/oxidized/model/model.rb b/lib/oxidized/model/model.rb index 7258912..d3f54b9 100644 --- a/lib/oxidized/model/model.rb +++ b/lib/oxidized/model/model.rb @@ -127,16 +127,16 @@ module Oxidized      def get        outputs = Outputs.new        procs = self.class.procs -      procs[:pre].each do |pre_proc| -        outputs << instance_eval(&pre_proc) -      end        self.class.cmds[:cmd].each do |command, block|          out = cmd command, &block          return false unless out          outputs << out        end +      procs[:pre].each do |pre_proc| +        outputs.unshift Oxidized::String.new(instance_eval(&pre_proc)) +      end        procs[:post].each do |post_proc| -        outputs << instance_eval(&post_proc) +        outputs << Oxidized::String.new(instance_eval(&post_proc))        end        outputs      end diff --git a/lib/oxidized/model/outputs.rb b/lib/oxidized/model/outputs.rb index 10015f8..a668e9d 100644 --- a/lib/oxidized/model/outputs.rb +++ b/lib/oxidized/model/outputs.rb @@ -14,6 +14,10 @@ module Oxidized          @outputs << output        end +      def unshift output +        @outputs.unshift output +      end +        def all          @outputs        end diff --git a/lib/oxidized/string.rb b/lib/oxidized/string.rb index d95bcae..4bdfbf2 100644 --- a/lib/oxidized/string.rb +++ b/lib/oxidized/string.rb @@ -19,5 +19,14 @@ module Oxidized        @name = @cmd.strip.gsub(/\s+/, '_') if @name == nil      end +    def initialize str='' +      super +      if str.class == Oxidized::String +        @cmd  = str.cmd +        @name = str.name +        @type = str.type +      end +    end +    end  end | 
