Class: Y2Network::Backend

Inherits:
Object
  • Object
show all
Includes:
Yast2::Equatable, Yast::I18n
Defined in:
src/lib/y2network/backend.rb

Overview

This class is the base class for the different network backends and also responsible of listing the supported ones.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id) ⇒ Backend

Constructor

Parameters:

  • id (Symbol)


38
39
40
41
42
43
# File 'src/lib/y2network/backend.rb', line 38

def initialize(id)
  textdomain "network"
  Yast.import "NetworkService"

  @id = id
end

Instance Attribute Details

#idSymbol (readonly)

Returns backend id.

Returns:

  • (Symbol)

    backend id



31
32
33
# File 'src/lib/y2network/backend.rb', line 31

def id
  @id
end

Class Method Details

.allArray<Backend>

Return all the supported backends

Returns:



64
65
66
67
# File 'src/lib/y2network/backend.rb', line 64

def self.all
  require "y2network/backends"
  @all ||= Backends.constants.map { |c| Backends.const_get(c).new }
end

.availableArray<Backend>

Return all the supported and installed backends

Returns:



72
73
74
# File 'src/lib/y2network/backend.rb', line 72

def self.available
  all.select(&:available?)
end

.by_id(id) ⇒ Backend?

Return the backend with the given id when supported

Parameters:

  • id (Symbol)

    the backend id to be find

Returns:



80
81
82
# File 'src/lib/y2network/backend.rb', line 80

def self.by_id(id)
  all.find { |b| b.id == id }
end

Instance Method Details

#available?Boolean

Return whether the backend is available or not

Returns:

  • (Boolean)


87
88
89
# File 'src/lib/y2network/backend.rb', line 87

def available?
  Yast::NetworkService.is_backend_available(id)
end

#labelString

Return the translated backend label

Returns:

  • (String)

Raises:

  • (NotImplementedError)


55
56
57
# File 'src/lib/y2network/backend.rb', line 55

def label
  raise NotImplementedError
end

#nameString Also known as: to_s

Return the backend short name

Returns:

  • (String)


48
49
50
# File 'src/lib/y2network/backend.rb', line 48

def name
  id.to_s
end

#packagesArray<String>

Return a list of the required packages for this backend

Returns:

  • (Array<String>)

    list of packages required by the backend



94
95
96
# File 'src/lib/y2network/backend.rb', line 94

def packages
  []
end