class Fusuma::Device
detect input device
def all
-
(Array)-
def all @all ||= fetch_devices.partition do |d| d.capabilities.match?(/gesture/) end.flatten end
def assign_attributes(attributes)
-
attributes(Hash) --
def assign_attributes(attributes) attributes.each do |k, v| case k when :id @id = v when :name @name = v when :capabilities @capabilities = v when :available @available = v end end end
def available
-
(Array)-
Raises:
-
(SystemExit)-
def available @available ||= all.select(&:available).tap do |d| MultiLogger.debug(available_devices: d) raise 'Touchpad is not found' if d.empty? end rescue RuntimeError => e # FIXME: should not exit without Runner class MultiLogger.error(e.message) exit 1 end
def fetch_devices
-
(Array)-
def fetch_devices line_parser = LineParser.new libinput_command = Plugin::Inputs::LibinputCommandInput.new.command libinput_command.list_devices do |line| line_parser.push(line) end line_parser.generate_devices end
def initialize(id: nil, name: nil, capabilities: nil, available: nil)
def initialize(id: nil, name: nil, capabilities: nil, available: nil) @id = id @name = name @capabilities = capabilities @available = available end
def reset
def reset @all = nil @available = nil end