Class: VirtualBox::SystemProperties

Inherits:
AbstractModel show all
Defined in:
lib/virtualbox/system_properties.rb

Overview

Represents the system properties associated with this VirtualBox installation. Many of these properties are readonly and represent limits on the system (max RAM available, max CPU, etc.). There are also configurable options which can be saved such as the default hard disk folder, or default machine folder.

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from AbstractModel

#destroy, #errors, errors_for_relationship, #existing_record!, #inspect, #lazy_attribute?, #lazy_relationship?, #new_record!, #new_record?, #parent_machine, #populate_attributes, #populate_relationship, #populate_relationships, reload!, #reload!, reload?, reloaded!, #save!, #save_attribute, #save_changed_interface_attributes, #save_interface_attribute, #set_relationship, #validate, #write_attribute

Methods included from AbstractModel::Validatable

#__validates_extract_options, #add_error, #clear_errors, #errors, #errors_on, #full_error_messages, #valid?, #validate, #validates_format_of, #validates_inclusion_of, #validates_numericality_of, #validates_presence_of

Methods included from AbstractModel::Relatable

#destroy_relationship, #destroy_relationships, #has_relationship?, included, #lazy_relationship?, #loaded_relationship?, #populate_relationship, #populate_relationships, #read_relationship, #relationship_class, #relationship_data, #save_relationship, #save_relationships, #set_relationship

Methods included from AbstractModel::VersionMatcher

#assert_version_match, #split_version, #version_match?

Methods included from AbstractModel::Dirty

#changed?, #changes, #clear_dirty!, #ignore_dirty, #method_missing, #set_dirty!

Methods included from AbstractModel::InterfaceAttributes

#load_interface_attribute, #load_interface_attributes, #save_interface_attribute, #save_interface_attributes, #spec_to_proc

Methods included from AbstractModel::Attributable

#attributes, #has_attribute?, included, #lazy_attribute?, #loaded_attribute?, #populate_attributes, #read_attribute, #readonly_attribute?, #write_attribute

Methods included from Logger

included, #logger, #logger_output=

Constructor Details

#initialize(isysprop) ⇒ SystemProperties

Initializes the system properties object. This shouldn’t be called directly. Instead ‘Global#system_properties` should be used to retrieve this object.



51
52
53
# File 'lib/virtualbox/system_properties.rb', line 51

def initialize(isysprop)
  initialize_attributes(isysprop)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class VirtualBox::AbstractModel::Dirty

Class Method Details

.populate_relationship(caller, data) ⇒ SystemProperties

Populates the system properties relationship for anything which is related to it.

**This method typically won’t be used except internally.**

Returns:



35
36
37
# File 'lib/virtualbox/system_properties.rb', line 35

def populate_relationship(caller, data)
  new(data)
end

.save_relationship(caller, item) ⇒ Object

Saves the relationship. This simply calls #save on the relationship object.

**This method typically won’t be used except internally.**



43
44
45
# File 'lib/virtualbox/system_properties.rb', line 43

def save_relationship(caller, item)
  item.save
end

Instance Method Details

#initialize_attributes(isysprop) ⇒ Object

Initializes the attributes of an existing shared folder.



56
57
58
59
60
61
62
63
64
65
66
# File 'lib/virtualbox/system_properties.rb', line 56

def initialize_attributes(isysprop)
  # Save the interface to an attribute
  write_attribute(:interface, isysprop)

  # Load the attributes from the interface
  load_interface_attributes(interface)

  # Clear dirty and mark as existing
  clear_dirty!
  existing_record!
end

#saveObject

Saves the system properties.



69
70
71
# File 'lib/virtualbox/system_properties.rb', line 69

def save
  save_changed_interface_attributes(interface)
end