Class: ForemanDatacenter::Rack

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/foreman_datacenter/rack.rb

Instance Method Summary collapse

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_devicesObject

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