Class: Fusuma::Plugin::Filters::LibinputDeviceFilter::KeepDevice
- Inherits:
-
Object
- Object
- Fusuma::Plugin::Filters::LibinputDeviceFilter::KeepDevice
- Defined in:
- lib/fusuma/plugin/filters/libinput_device_filter.rb
Overview
Select Device to keep
Class Attribute Summary collapse
-
.from_option ⇒ Object
Returns the value of attribute from_option.
Instance Attribute Summary collapse
-
#name_patterns ⇒ Object
readonly
Returns the value of attribute name_patterns.
Instance Method Summary collapse
-
#all ⇒ Array
: () -> Array.
-
#initialize(name_patterns:) ⇒ KeepDevice
constructor
: (name_patterns: Array) -> void.
-
#match_pattern?(string) ⇒ TrueClass, FalseClass
: (String) -> bool.
-
#print_not_found_messages ⇒ Object
: () -> nil.
-
#reset ⇒ Object
remove cache for reloading new devices : () -> void.
Constructor Details
#initialize(name_patterns:) ⇒ KeepDevice
: (name_patterns: Array) -> void
59 60 61 |
# File 'lib/fusuma/plugin/filters/libinput_device_filter.rb', line 59 def initialize(name_patterns:) @name_patterns = name_patterns | Array(self.class.from_option) end |
Class Attribute Details
.from_option ⇒ Object
Returns the value of attribute from_option.
103 104 105 |
# File 'lib/fusuma/plugin/filters/libinput_device_filter.rb', line 103 def from_option @from_option end |
Instance Attribute Details
#name_patterns ⇒ Object (readonly)
Returns the value of attribute name_patterns.
63 64 65 |
# File 'lib/fusuma/plugin/filters/libinput_device_filter.rb', line 63 def name_patterns @name_patterns end |
Instance Method Details
#all ⇒ Array
: () -> Array
74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/fusuma/plugin/filters/libinput_device_filter.rb', line 74 def all @all ||= if @name_patterns.empty? Device.all.select(&:available) else Device.all.select do |device| match_pattern?(device.name) end end.tap do |devices| MultiLogger.debug(available_devices: devices) if devices.empty? end end |
#match_pattern?(string) ⇒ TrueClass, FalseClass
: (String) -> bool
96 97 98 99 100 |
# File 'lib/fusuma/plugin/filters/libinput_device_filter.rb', line 96 def match_pattern?(string) return true if @name_patterns.empty? @name_patterns.any? { |name_pattern| string.match(name_pattern) } end |
#print_not_found_messages ⇒ Object
: () -> nil
88 89 90 91 |
# File 'lib/fusuma/plugin/filters/libinput_device_filter.rb', line 88 def puts "Device is not found. Check following section on your config.yml" puts LibinputDeviceFilter.new.config_param_sample end |