Class: VirtualBox::AudioAdapter

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

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, #write_attribute

Methods included from VirtualBox::AbstractModel::Validatable

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

Methods included from VirtualBox::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 VirtualBox::AbstractModel::VersionMatcher

#assert_version_match, #split_version, #version_match?

Methods included from VirtualBox::AbstractModel::Dirty

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

Methods included from VirtualBox::AbstractModel::InterfaceAttributes

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

Methods included from VirtualBox::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

- (AudioAdapter) initialize(parent, iaudio)



26
27
28
29
30
31
32
33
# File 'lib/virtualbox/audio_adapter.rb', line 26

def initialize(parent, iaudio)
  write_attribute(:parent, parent)

  # Load the attributes and mark the whole thing as existing
  load_interface_attributes(iaudio)
  clear_dirty!
  existing_record!
end

Dynamic Method Handling

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

Class Method Details

+ (BIOS) populate_relationship(caller, imachine)

Populates a relationship with another model.

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



14
15
16
# File 'lib/virtualbox/audio_adapter.rb', line 14

def populate_relationship(caller, imachine)
  data = new(caller, imachine.audio_adapter)
end

+ (Object) save_relationship(caller, instance)

Saves the relationship.

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



21
22
23
# File 'lib/virtualbox/audio_adapter.rb', line 21

def save_relationship(caller, instance)
  instance.save
end

Instance Method Details

- (Object) save



43
44
45
46
47
48
49
50
# File 'lib/virtualbox/audio_adapter.rb', line 43

def save
  parent.with_open_session do |session|
    machine = session.machine

    # Save them
    save_changed_interface_attributes(machine.audio_adapter)
  end
end

- (Object) validate



35
36
37
38
39
40
41
# File 'lib/virtualbox/audio_adapter.rb', line 35

def validate
  super

  validates_inclusion_of :enabled, :in => [true, false]
  validates_inclusion_of :audio_controller, :in => COM::Util.versioned_interface(:AudioControllerType).map
  validates_inclusion_of :audio_driver, :in => COM::Util.versioned_interface(:AudioDriverType).map
end