class RMonitor::Actions

Public Class Methods

new(options = {}) click to toggle source
# File lib/rmonitor/actions.rb, line 5
def initialize(options = {})
  @capabilities = options[:capabilities] || Capabilities.new(options).parse
end

Public Instance Methods

create(profile) click to toggle source
# File lib/rmonitor/actions.rb, line 9
def create(profile)
  actions = []

  @avaialble_devices = @capabilities.map { |capability| capability[:name] }.uniq
  @desired_devices = profile[:devices].map { |device| device[:name] }

  (@avaialble_devices - @desired_devices).each do |device|
    actions << {:action => :off, :name => device}
  end

  if profile[:dpi]
    actions << {:action => :option, :name => :dpi, :value => profile[:dpi]}
  end

  profile[:devices].each do |device|
    actions << device.merge(:action => :on)
  end

  actions
end