diff options
author | Saku Ytti <saku@ytti.fi> | 2014-08-07 14:33:18 +0300 |
---|---|---|
committer | Saku Ytti <saku@ytti.fi> | 2014-08-07 14:33:18 +0300 |
commit | 7aa9299971a2cacad29ab86e82cc780354d659e0 (patch) | |
tree | c932d85d28b2c6d654e3bfff75db00b6906c9af4 /lib/oxidized/model/model.rb | |
parent | 2a77796a7caf10601ae8edea5bf996f951694985 (diff) |
Keep config as Oxidized::Config instead of hash
The model will look like this:
cmd 'show ip cef' do |out|
out.type = 'poop'
out
end
cmd 'show process cpu' do |out|
out.type = 'poop'
out
end
cmd 'show memory statistics' do |out|
out.type = 'poop'
out
end
I think it's cleaner.
Diffstat (limited to 'lib/oxidized/model/model.rb')
-rw-r--r-- | lib/oxidized/model/model.rb | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/oxidized/model/model.rb b/lib/oxidized/model/model.rb index af86f1d..3dd3f98 100644 --- a/lib/oxidized/model/model.rb +++ b/lib/oxidized/model/model.rb @@ -79,16 +79,15 @@ module Oxidized def cmd string, &block out = @input.cmd string return false unless out - out = Oxidized::String.new out self.class.cmds[:all].each do |all_block| - out = instance_exec out, string, &all_block + out = instance_exec Oxidized::String.new(out), string, &all_block end if vars :remove_secret self.class.cmds[:secret].each do |all_block| - out = instance_exec out, string, &all_block + out = instance_exec Oxidized::String.new(out), string, &all_block end end - out = instance_exec out, &block if block + out = instance_exec Oxidized::String.new(out), &block if block process_cmd_output out, string end @@ -152,12 +151,12 @@ module Oxidized private - def process_cmd_output cmd, name - if Hash === cmd - cmd[:name] = name - return cmd + def process_cmd_output output, name + if output.class != Oxidized::String + output = Oxidized::String.new output end - {:output=>cmd, :type=>'cfg', :name=>name} + output.cmd = name + output end end |