fusuma 3.5.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 352237ad297e7171f4e0ab18f96b1560e90ce1835b2591e01213496876388b42
4
- data.tar.gz: 11b61f92f937ac7857800d10e6967367674e691cc883a12e81a343f084a8073b
3
+ metadata.gz: 82378c097f2a0af57970c6ac59afbee3ef8e0ce2d0b2957ebc968673490c1623
4
+ data.tar.gz: 7324182088a879f6ccc057a311945258bf49f3f255cda67c161b5e6d847871d5
5
5
  SHA512:
6
- metadata.gz: 49d73eaa0635211cb018992b4c7d8cfd238a7f7d9811db33248578873ad21b04b0cbdaaecbc7469c34d18c9205e1de574be85f47e91cc7c986460f29adb18aa4
7
- data.tar.gz: a0beefc19aefe6cf1ffeb879b3dc070af75e65b620a5b68a0765bb9cbb09f4df3f0d689e4b67b3963f90e7ece9398a0543014874f6555abb320c19698997d3d5
6
+ metadata.gz: deb0bc67936c61576f2ef0fa69ac0db89233ae2765633fe0da946368c91f0d2930520cea15a451119b79f451c8e103efb74b84a2fda2bbb9982625a29f560e65
7
+ data.tar.gz: ea89aef6ec99904287cd958c03beaf46f031b71757293bf77b8920d2b2cb5ead60f2cf525800644537d7a8e3f68aee47323f31f81a579f8a8bb8ebcc57eaccd9
@@ -6,14 +6,7 @@ module Fusuma
6
6
  # Find duplicated keys from YAML.
7
7
  module YAMLDuplicationChecker
8
8
  def self.check(yaml_string, filename, &on_duplicated)
9
- # Ruby 2.6+
10
- tree = if Gem::Version.new(Psych::VERSION) >= Gem::Version.new("3.1.0")
11
- # Specify filename to display helpful message when it raises
12
- # an error.
13
- YAML.parse(yaml_string, filename: filename)
14
- else
15
- YAML.parse(yaml_string, filename)
16
- end
9
+ tree = YAML.parse(yaml_string, filename: filename)
17
10
  return unless tree
18
11
 
19
12
  traverse(tree, &on_duplicated)
data/lib/fusuma/config.rb CHANGED
@@ -100,10 +100,12 @@ module Fusuma
100
100
 
101
101
  yamls = YAML.load_stream(File.read(path)).compact
102
102
  yamls.map do |yaml|
103
- raise InvalidFileError, "invalid config.yml: #{path}" unless yaml.is_a? Hash
103
+ raise InvalidFileError, "Invalid config.yml: #{path}" unless yaml.is_a? Hash
104
104
 
105
105
  yaml.deep_symbolize_keys
106
106
  end
107
+ rescue Psych::SyntaxError => e
108
+ raise InvalidFileError, "Invalid syntax: #{path} #{e.message}"
107
109
  end
108
110
 
109
111
  # @param index [Index]
@@ -13,6 +13,22 @@ module Fusuma
13
13
 
14
14
  class << self
15
15
  attr_writer :filepath
16
+
17
+ def info(msg)
18
+ instance.info(msg)
19
+ end
20
+
21
+ def debug(msg)
22
+ instance.debug(msg)
23
+ end
24
+
25
+ def warn(msg)
26
+ instance.warn(msg)
27
+ end
28
+
29
+ def error(msg)
30
+ instance.error(msg)
31
+ end
16
32
  end
17
33
 
18
34
  def initialize
@@ -49,8 +65,11 @@ module Fusuma
49
65
  debug_mode
50
66
  end
51
67
 
68
+ private
69
+
52
70
  def ignore_pattern?(msg)
53
71
  # TODO: configurable from config.yml
72
+ # pattern = /timer_input|remap_touchpad_input|thumbsense context|libinput_command_input/
54
73
  pattern = /timer_input/
55
74
  case msg
56
75
  when Hash
@@ -58,27 +77,11 @@ module Fusuma
58
77
  return unless e
59
78
 
60
79
  e.tag.match?(pattern)
80
+ when String
81
+ msg.match?(pattern)
61
82
  else
62
83
  false
63
84
  end
64
85
  end
65
-
66
- class << self
67
- def info(msg)
68
- instance.info(msg)
69
- end
70
-
71
- def debug(msg)
72
- instance.debug(msg)
73
- end
74
-
75
- def warn(msg)
76
- instance.warn(msg)
77
- end
78
-
79
- def error(msg)
80
- instance.error(msg)
81
- end
82
- end
83
86
  end
84
87
  end
@@ -26,12 +26,12 @@ module Fusuma
26
26
  Records::TextRecord.new(record)
27
27
  else
28
28
  raise ArgumentError,
29
- "@record should be String or Record"
29
+ "@record should be String or Record: #{record.class}, #{record}"
30
30
  end
31
31
  end
32
32
 
33
33
  def inspect
34
- "time: #{time}, tag: #{tag}, record: #{record}"
34
+ "tag: #{tag}, record: #{record}"
35
35
  end
36
36
  end
37
37
  end
@@ -31,7 +31,7 @@ module Fusuma
31
31
  end
32
32
 
33
33
  def to_s
34
- "#{@gesture}, #{@finger}, #{@status}, #{@delta}"
34
+ "#{@gesture}, Finger: #{@finger}, Status: #{@status}"
35
35
  end
36
36
  end
37
37
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fusuma
4
- VERSION = "3.5.0"
4
+ VERSION = "3.6.0"
5
5
  end
data/lib/fusuma.rb CHANGED
@@ -15,14 +15,13 @@ module Fusuma
15
15
  def run(option = {})
16
16
  read_options(option)
17
17
  instance = new
18
+ instance.initialize_plugins
18
19
  instance.set_trap
19
20
  ## NOTE: Uncomment following line to measure performance
20
21
  # instance.run_with_lineprof
21
22
  instance.run
22
- rescue => e
23
- MultiLogger.error("Shutdown by error")
24
- MultiLogger.error(e)
25
- instance.send(:shutdown)
23
+ ensure
24
+ instance&.send(:shutdown)
26
25
  end
27
26
 
28
27
  private
@@ -59,7 +58,9 @@ module Fusuma
59
58
  end
60
59
  end
61
60
 
62
- def initialize
61
+ def initialize; end
62
+
63
+ def initialize_plugins
63
64
  @inputs = Plugin::Inputs::Input.plugins.map do |cls|
64
65
  cls.ancestors.include?(Singleton) ? cls.instance : cls.new
65
66
  end
@@ -206,7 +207,7 @@ module Fusuma
206
207
  private
207
208
 
208
209
  def shutdown
209
- [@inputs, @filters, @parsers, @buffers, @detectors, @executors].flatten.each do |plugin|
210
+ [@inputs, @filters, @parsers, @buffers, @detectors, @executors].flatten.compact.each do |plugin|
210
211
  plugin.shutdown
211
212
  end
212
213
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fusuma
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.0
4
+ version: 3.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - iberianpig
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-29 00:00:00.000000000 Z
11
+ date: 2024-07-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Fusuma is multitouch gesture recognizer. This gem makes your touchpad
14
14
  on Linux able to recognize swipes or pinchs and assign command to them. Read installation