Class: ForemanDatacenter::Rack
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- ForemanDatacenter::Rack
- Defined in:
- app/models/foreman_datacenter/rack.rb
Instance Method Summary collapse
- #device_at(position) ⇒ Object
-
#positioned_devices ⇒ Object
def positioned_devices height.downto(1).map { |position| [position, device_at(position)] } end.
Instance Method Details
#device_at(position) ⇒ Object
13 14 15 |
# File 'app/models/foreman_datacenter/rack.rb', line 13 def device_at(position) devices.where(position: position).to_a end |
#positioned_devices ⇒ Object
def positioned_devices
height.downto(1).map { |position| [position, device_at(position)] }
end
21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/models/foreman_datacenter/rack.rb', line 21 def positioned_devices devs = devices.map{ |d| [d.positions, [d]] } result = [] i = 1 loop do current_device = devs.select{ |d| d[0].include?(i) } current_device == [] ? (result << [[i],[]]; i +=1 ) : (result << merge_devices(current_device, i); i = i + current_device[0][1].last.size) break if i > height end device_sorting(result) end |