| Age | Commit message (Collapse) | Author | 
 | 
 | 
 | 
- now default type is 'nil', which is collapsed to flat config via
  Outputs#to_cfg
- if type is not 'nil' then name is automatically set if not set by
  model
- if name and type is set, separate file is created
- if name is not set, but type is set, outputs from type are collapsed
  as with 'nil' types
This model:
  cmd 'show ip cef' do |out|
    out.type = 'poop'
    out.name = false
    out
  end
  cmd 'show process cpu' do |out|
    out.type = 'poop'
    out.name = 'my_cpu'
    out
  end
  cmd 'show memory statistics' do |out|
    out.type = 'poop'
    out.name = false
    out
  end
  cmd 'show ip bgp summary' do |out|
    out.type = 'poop'
  end
Would produce git output:
[ytti@ytti.fi ~/.config/oxidized]% ls poop
bu.ip.fi  bu.ip.fi--cpu  bu.ip.fi--show_ip_bgp_summary
[ytti@ytti.fi ~/.config/oxidized]%
bu.ip.fi contains the collapsed stuff
bu.ip.fi--cpu is manually named
bu.ip.fi--show_ip_bgp_summary is automatically named
 | 
 | 
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.
 | 
 | 
These objects have some keys, such as 'type' and 'name', which allows
our output model to discriminate on them.
If ios.rb contains this:
  cmd 'show ip cef' do |out|
    { output: out, type: 'poop' }
  end
  cmd 'show process cpu' do |out|
    { output: out, type: 'poop' }
  end
  cmd 'show memory statistics' do |out|
    { output: out, type: 'poop' }
  end
Our git output looks like this:
[ytti@ytti.fi ~/.config/oxidized]% git clone oxidized.git
Cloning into 'oxidized'...
done.
[ytti@ytti.fi ~/.config/oxidized]% git clone poop.git
Cloning into 'poop'...
done.
[ytti@ytti.fi ~/.config/oxidized]% ls poop
bu.ip.fi--show_ip_cef  bu.ip.fi--show_memory_statistics  bu.ip.fi--show_process_cpu
[ytti@ytti.fi ~/.config/oxidized]% ls oxidized
bu.ip.fi
[ytti@ytti.fi ~/.config/oxidized]%
Where oxidized repo contains standard config for all unspecified types (type is
then 'cfg'), for all specified types instead of collapsing it into single
string, we store them in 'type' repo with filename including 'name' of the
command.
 |