Class: Fog::Vcloud::MockDataClasses::MockVirtualMachineDisks
- Inherits:
-
Array
- Object
- Array
- Fog::Vcloud::MockDataClasses::MockVirtualMachineDisks
- Defined in:
- lib/fog/vcloud/mock_data_classes.rb
Instance Method Summary collapse
- #<<(disk) ⇒ Object
- #_parent ⇒ Object
- #at_address(address) ⇒ Object
-
#initialize(parent = nil) ⇒ MockVirtualMachineDisks
constructor
A new instance of MockVirtualMachineDisks.
Constructor Details
#initialize(parent = nil) ⇒ MockVirtualMachineDisks
Returns a new instance of MockVirtualMachineDisks.
521 522 523 |
# File 'lib/fog/vcloud/mock_data_classes.rb', line 521 def initialize(parent = nil) @parent = parent end |
Instance Method Details
#<<(disk) ⇒ Object
529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 |
# File 'lib/fog/vcloud/mock_data_classes.rb', line 529 def <<(disk) next_address = 0 disk_with_max_address = max {|a, b| a[:address] <=> b[:address] } disk_with_max_address && next_address = disk_with_max_address.address + 1 disk[:address] ||= next_address super(disk) if (addresses = map {|d| d.address }).uniq.size != size raise "Duplicate disk address in: #{addresses.inspect} (#{size})" end sort! {|a, b| a.address <=> b.address } self end |
#_parent ⇒ Object
525 526 527 |
# File 'lib/fog/vcloud/mock_data_classes.rb', line 525 def _parent @parent end |
#at_address(address) ⇒ Object
545 546 547 |
# File 'lib/fog/vcloud/mock_data_classes.rb', line 545 def at_address(address) detect {|d| d.address == address } end |