Class: DInstaller::DBus::Clients::Language

Inherits:
Base
  • Object
show all
Defined in:
lib/dinstaller/dbus/clients/language.rb

Overview

D-Bus client for language configuration

Instance Method Summary collapse

Methods inherited from Base

#service

Constructor Details

#initializeLanguage

Returns a new instance of Language.



29
30
31
32
33
34
# File 'lib/dinstaller/dbus/clients/language.rb', line 29

def initialize
  super

  @dbus_object = service.object("/org/opensuse/DInstaller/Language1")
  @dbus_object.introspect
end

Instance Method Details

#available_languagesArray<Array<String, String>>

Available languages for the installation

Returns:

  • (Array<Array<String, String>>)

    id and name of each language



43
44
45
# File 'lib/dinstaller/dbus/clients/language.rb', line 43

def available_languages
  dbus_object["org.opensuse.DInstaller.Language1"]["AvailableLanguages"].map { |l| l[0..1] }
end

#finishObject

Finishes the language installation



62
63
64
# File 'lib/dinstaller/dbus/clients/language.rb', line 62

def finish
  dbus_object.Finish
end

#on_language_selected(&block) ⇒ Object

Note:

Signal subscription is done only once. Otherwise, the latest subscription overrides the previous one.

Registers a callback to run when the language changes

Parameters:

  • block (Proc)

    Callback to run when a language is selected



72
73
74
75
76
77
# File 'lib/dinstaller/dbus/clients/language.rb', line 72

def on_language_selected(&block)
  on_properties_change(dbus_object) do |_, changes, _|
    languages = changes["MarkedForInstall"]
    block.call(languages)
  end
end

#select_languages(ids) ⇒ Object

Selects the languages to install

Parameters:

  • ids (Array<String>)


57
58
59
# File 'lib/dinstaller/dbus/clients/language.rb', line 57

def select_languages(ids)
  dbus_object.ToInstall(ids)
end

#selected_languagesArray<String>

Languages selected to install

Returns:

  • (Array<String>)

    ids of the languages



50
51
52
# File 'lib/dinstaller/dbus/clients/language.rb', line 50

def selected_languages
  dbus_object["org.opensuse.DInstaller.Language1"]["MarkedForInstall"]
end

#service_nameObject



36
37
38
# File 'lib/dinstaller/dbus/clients/language.rb', line 36

def service_name
  @service_name ||= "org.opensuse.DInstaller.Language"
end