Class: Y2Network::S390GroupDevicesCollection

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
CanBeCopied, Yast2::Equatable, Yast::Logger
Defined in:
src/lib/y2network/s390_group_devices_collection.rb

Overview

A container for network devices.

Objects of this class are able to keep a list of s390 group devices and perform simple queries on such a list.

Examples:

Finding s390 group device by its id

devices = Y2Network::S390GroupDevicesCollection.new([qeth_700, qeth_800])
devices.by_id("0.0.0700:0.0.0701:0.0.0702") #=> qeth_700

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from CanBeCopied

#copy

Constructor Details

#initialize(devices = []) ⇒ S390GroupDevicesCollection

Constructor

Parameters:



54
55
56
# File 'src/lib/y2network/s390_group_devices_collection.rb', line 54

def initialize(devices = [])
  @devices = devices
end

Instance Attribute Details

#devicesArray<S390GroupDevice> (readonly) Also known as: to_a

Returns List of devices.

Returns:



43
44
45
# File 'src/lib/y2network/s390_group_devices_collection.rb', line 43

def devices
  @devices
end

Instance Method Details

#by_id(id) ⇒ S390GroupDevice?

Returns an s390 group device with the given id if present

Parameters:

  • id (String)

    s390 group device id ("eth0", "br1", ...)

Returns:

  • (S390GroupDevice, nil)

    S390GroupDevice with the given id or nil if not found



68
69
70
# File 'src/lib/y2network/s390_group_devices_collection.rb', line 68

def by_id(id)
  devices.find { |device| device.id == id }
end

#by_type(type) ⇒ S390GroupDevicesCollection

Returns list of devices of given type

Parameters:

  • type (String)

    device type

Returns:



76
77
78
# File 'src/lib/y2network/s390_group_devices_collection.rb', line 76

def by_type(type)
  S390GroupDevicesCollection.new(devices.select { |d| d.type.short_name == type })
end

#delete_if(&block) ⇒ S390GroupDevicesCollection

Deletes elements which meet a given condition



83
84
85
86
# File 'src/lib/y2network/s390_group_devices_collection.rb', line 83

def delete_if(&block)
  devices.delete_if(&block)
  self
end

#eql_hashObject



58
59
60
61
62
# File 'src/lib/y2network/s390_group_devices_collection.rb', line 58

def eql_hash
  h = super
  h[:devices] = h[:devices].sort_by(&:hash) if h.keys.include?(:devices)
  h
end