class Fusuma::Plugin::Filters::LibinputDeviceFilter

Filter device log

Constants

DEFAULT_SOURCE

Public Instance Methods

config_param_sample() click to toggle source
# File lib/fusuma/plugin/filters/libinput_device_filter.rb, line 38
        def config_param_sample
          <<~SAMPLE
            ```config.yml
            plugin:
              filters:
                libinput_device_filter:
                  keep_device_names:
                    - "DEVICE NAME PATTERN"
            ```
          SAMPLE
        end
config_param_types() click to toggle source
# File lib/fusuma/plugin/filters/libinput_device_filter.rb, line 13
def config_param_types
  {
    source: String,
    keep_device_names: [Array, String]
  }
end
keep?(record) click to toggle source

@return [TrueClass] when keeping it @return [FalseClass] when discarding it

# File lib/fusuma/plugin/filters/libinput_device_filter.rb, line 22
def keep?(record)
  # NOTE: purge cache when found new device
  if record.to_s =~ /\sDEVICE_ADDED\s/ && keep_device.match_pattern?(record.to_s)
    keep_device.reset
    return false
  end
  keep_device.all.map(&:id).any? { |device_id| record.to_s =~ /^[\s-]?#{device_id}\s/ }
end
keep_device() click to toggle source
# File lib/fusuma/plugin/filters/libinput_device_filter.rb, line 31
def keep_device
  @keep_device ||= begin
    from_config = Array(config_params(:keep_device_names))
    KeepDevice.new(name_patterns: from_config)
  end
end