Class: Y2Network::ConnectionConfigsCollection
- Inherits:
-
Object
- Object
- Y2Network::ConnectionConfigsCollection
- Extended by:
- Forwardable
- Includes:
- CanBeCopied, Yast2::Equatable, Yast::Logger
- Defined in:
- src/lib/y2network/connection_configs_collection.rb
Overview
A container for connection configurations objects.
Instance Attribute Summary collapse
-
#connection_configs ⇒ Object
(also: #to_a)
readonly
Returns the value of attribute connection_configs.
Instance Method Summary collapse
-
#add_or_update(connection_config) ⇒ Object
Adds or updates a connection configuration.
-
#by_bootproto(*bootprotos) ⇒ Array<ConnectionConfig::Base>
Returns connections with a given bootproto.
-
#by_ids(*ids) ⇒ Array<ConnectionConfig::Base>
Returns connections with any of the given internal IDs.
-
#by_interface(interface_name) ⇒ Array<ConnectionConfig::Base>
Returns connection configurations which are associated to the given interface.
-
#by_name(name) ⇒ ConnectionConfig::Base?
Returns a connection configuration with the given name if present.
- #eql_hash ⇒ Object
-
#initialize(connection_configs = []) ⇒ ConnectionConfigsCollection
constructor
Constructor.
-
#remove(connection_config) ⇒ Object
Removes a connection configuration.
-
#select(&block) ⇒ ConnectionConfigsCollection
Selects connections which satisfy the given +block+.
Methods included from CanBeCopied
Constructor Details
#initialize(connection_configs = []) ⇒ ConnectionConfigsCollection
Constructor
51 52 53 |
# File 'src/lib/y2network/connection_configs_collection.rb', line 51 def initialize(connection_configs = []) @connection_configs = connection_configs end |
Instance Attribute Details
#connection_configs ⇒ Object (readonly) Also known as: to_a
Returns the value of attribute connection_configs.
40 41 42 |
# File 'src/lib/y2network/connection_configs_collection.rb', line 40 def connection_configs @connection_configs end |
Instance Method Details
#add_or_update(connection_config) ⇒ Object
It uses the name to do the matching.
Adds or updates a connection configuration
100 101 102 103 104 105 106 107 |
# File 'src/lib/y2network/connection_configs_collection.rb', line 100 def add_or_update(connection_config) idx = connection_configs.find_index { |c| c.name == connection_config.name } if idx connection_configs[idx] = connection_config else connection_configs << connection_config end end |
#by_bootproto(*bootprotos) ⇒ Array<ConnectionConfig::Base>
Returns connections with a given bootproto
91 92 93 |
# File 'src/lib/y2network/connection_configs_collection.rb', line 91 def by_bootproto(*bootprotos) select { |c| bootprotos.include?(c.bootproto) } end |
#by_ids(*ids) ⇒ Array<ConnectionConfig::Base>
Returns connections with any of the given internal IDs
83 84 85 |
# File 'src/lib/y2network/connection_configs_collection.rb', line 83 def by_ids(*ids) select { |c| ids.include?(c.id) } end |
#by_interface(interface_name) ⇒ Array<ConnectionConfig::Base>
Returns connection configurations which are associated to the given interface
75 76 77 |
# File 'src/lib/y2network/connection_configs_collection.rb', line 75 def by_interface(interface_name) connection_configs.select { |c| c.interface == interface_name } end |
#by_name(name) ⇒ ConnectionConfig::Base?
Returns a connection configuration with the given name if present
67 68 69 |
# File 'src/lib/y2network/connection_configs_collection.rb', line 67 def by_name(name) connection_configs.find { |c| c.name == name } end |
#eql_hash ⇒ Object
55 56 57 58 59 60 61 |
# File 'src/lib/y2network/connection_configs_collection.rb', line 55 def eql_hash h = super if h.keys.include?(:connection_configs) h[:connection_configs] = h[:connection_configs].sort_by(&:hash) end h end |
#remove(connection_config) ⇒ Object
It uses the name to do the matching.
Removes a connection configuration
115 116 117 118 |
# File 'src/lib/y2network/connection_configs_collection.rb', line 115 def remove(connection_config) name = connection_config.respond_to?(:name) ? connection_config.name : connection_config connection_configs.reject! { |c| c.name == name } end |
#select(&block) ⇒ ConnectionConfigsCollection
Selects connections which satisfy the given +block+
124 125 126 |
# File 'src/lib/y2network/connection_configs_collection.rb', line 124 def select(&block) self.class.new(to_a.select(&block)) end |