Class: VirtualBox::USBDeviceFilter
- Inherits:
-
AbstractModel
- Object
- AbstractModel
- VirtualBox::USBDeviceFilter
- Defined in:
- lib/virtualbox/usb_device_filter.rb
Overview
Represents a USB device filter within VirtualBox. This class is a relationship to USBController objects.
Class Method Summary collapse
-
.populate_relationship(caller, usbcontroller) ⇒ USBDeviceFilter
Populates the USB controller relationship for anything which is related to it.
-
.save_relationship(caller, item) ⇒ Object
Saves the relationship.
Instance Method Summary collapse
- #added_to_relationship(proxy) ⇒ Object
-
#initialize(iusb) ⇒ USBDeviceFilter
constructor
A new instance of USBDeviceFilter.
- #initialize_attributes(iusb) ⇒ Object
-
#save ⇒ Object
Saves the USB device.
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(iusb) ⇒ USBDeviceFilter
Returns a new instance of USBDeviceFilter.
46 47 48 |
# File 'lib/virtualbox/usb_device_filter.rb', line 46 def initialize(iusb) initialize_attributes(iusb) 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, usbcontroller) ⇒ USBDeviceFilter
Populates the USB controller relationship for anything which is related to it.
**This method typically won’t be used except internally.**
27 28 29 30 31 32 33 34 35 |
# File 'lib/virtualbox/usb_device_filter.rb', line 27 def populate_relationship(caller, usbcontroller) result = Proxies::Collection.new(caller) usbcontroller.device_filters.each do |filter| result << new(filter) end result 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.**
41 42 43 |
# File 'lib/virtualbox/usb_device_filter.rb', line 41 def save_relationship(caller, item) item.save end |
Instance Method Details
#added_to_relationship(proxy) ⇒ Object
62 63 64 65 |
# File 'lib/virtualbox/usb_device_filter.rb', line 62 def added_to_relationship(proxy) write_attribute(:parent, proxy.parent) write_attribute(:parent_collection, proxy) end |
#initialize_attributes(iusb) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/virtualbox/usb_device_filter.rb', line 50 def initialize_attributes(iusb) # Write the parent and interface attributes write_attribute(:interface, iusb) # Load the interface attributes load_interface_attributes(interface) # Clear dirty and mark as existing clear_dirty! existing_record! end |
#save ⇒ Object
Saves the USB device.
68 69 70 71 72 |
# File 'lib/virtualbox/usb_device_filter.rb', line 68 def save parent.with_open_session do |session| # TODO: save_changed_interface_attributes(session.machine.usb_controller) end end |