Method: Cisco::BridgeDomain.bd_list_to_string

Defined in:
lib/cisco_node_utils/bridge_domain.rb

.bd_list_to_string(bd_list) ⇒ Object

This method will generate a batched string if a list is passed as argument Input would be as [1,2,3,4,5,10,11,12,7,30,100,31,32] output will be 1-5,10-12,7,30,100,31-32



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/cisco_node_utils/bridge_domain.rb', line 61

def self.bd_list_to_string(bd_list)
  farray = bd_list.compact
  lranges = []
  unless farray.empty?
    left = bd_list.first
    right = nil
    farray.each do |aelem|
      if right && aelem != right.succ
        if left == right
          lranges << left
        else
          lranges << Range.new(left, right)
        end
        left = aelem
      end
      right = aelem
    end
    if left == right
      lranges << left
    else
      lranges << Range.new(left, right)
    end
  end
  lranges.to_s.gsub('..', '-').delete('[').delete(']').delete(' ')
end