Module: Extface::DevicesHelper

Defined in:
app/helpers/extface/devices_helper.rb

Instance Method Summary collapse

Instance Method Details

#options_for_driversObject



13
14
15
16
17
18
19
20
21
# File 'app/helpers/extface/devices_helper.rb', line 13

def options_for_drivers
  Extface::Engine.eager_load! if Rails.env.development?
  [].tap do |drivers|
    Extface::Driver.subclasses.each do |s|
      drivers << s
      drivers << subdrivers(s)
    end
  end.flatten.group_by{ |x| x::GROUP }.sort.collect{ |group, drivers| [group, drivers.collect{ |d| [d::NAME, d.to_s] }.sort ] }
end

#subdrivers(object) ⇒ Object



4
5
6
7
8
9
10
11
# File 'app/helpers/extface/devices_helper.rb', line 4

def subdrivers(object)
  [].tap do |drivers|
    object.subclasses.each do |s|
      drivers << s
      drivers << subdrivers(s) if s.subclasses.any?
    end
  end
end