class Aio::Module::Cmd::Cisco::ShowInv

Public Class Methods

new() click to toggle source
Calls superclass method Aio::Module::Cmd::new
# File lib/modules/cmd/cisco/show_inv.rb, line 8
def initialize
        super({
                :cmd_full            => "show inventory",
                :cmd_short           => "sh inv",
                :author                              => "Elin",
                :description  => "This is Cisco Command# show inventory",
                :platform                    => "all",
        })
end

Public Instance Methods

parse() click to toggle source
# File lib/modules/cmd/cisco/show_inv.rb, line 18
def parse
        context = self.context.dup
        inv_info = {}
        useful[:inventory] = inv_info

        context.readline_range_loop(/NAME:/, reg_blank) do |cont|
                slot_info = {}
                name = ""
                description = ""

                cont.readline_match_block(/NAME: "(?<name>.*)", DESCR: "(?<description>.*)"/) do |block|
                        name = block[:name]
                        description = block[:description]
                end
                cont.readline_match_block(/PID: (?<pid>[^\s]+).*SN: (?<sn>[^\s]+)/) do |block|
                        sn = block[:sn]
                        inv_info[sn.to_sym] = slot_info
                        block.update(slot_info, :name, name)
                        block.update(slot_info, :description, description)
                        block.update(slot_info, :pid)
                        block.update(slot_info, :sn)
                end
        end
end