Class: Fog::Ecloud::MockDataClasses::MockVirtualMachineDisks
- Inherits:
-
Array
- Object
- Array
- Fog::Ecloud::MockDataClasses::MockVirtualMachineDisks
- Defined in:
- lib/rackspace-fog/ecloud/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.
542 543 544 |
# File 'lib/rackspace-fog/ecloud/mock_data_classes.rb', line 542 def initialize(parent = nil) @parent = parent end |
Instance Method Details
#<<(disk) ⇒ Object
550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 |
# File 'lib/rackspace-fog/ecloud/mock_data_classes.rb', line 550 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
546 547 548 |
# File 'lib/rackspace-fog/ecloud/mock_data_classes.rb', line 546 def _parent @parent end |
#at_address(address) ⇒ Object
566 567 568 |
# File 'lib/rackspace-fog/ecloud/mock_data_classes.rb', line 566 def at_address(address) detect {|d| d.address == address } end |