fusuma 1.4.1 → 1.5.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 +4 -4
- data/CHANGELOG.md +5 -1
- data/lib/fusuma.rb +9 -7
- data/lib/fusuma/plugin/buffers/buffer.rb +4 -0
- data/lib/fusuma/plugin/buffers/gesture_buffer.rb +11 -12
- data/lib/fusuma/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce8f9acb74d456ca14afae7b7cf83fa70e2c52adc81902e2e0eb7f1ff1d1c6aa
|
4
|
+
data.tar.gz: 121e54c98da13699bae297fea522f8004a73de33e438ffb9fd6161fb7b6df069
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce1727335f611a3d9ee099b8189bbf4e80d7f446173b696f46c1cada8b7185d19811a4227c73d3216e7e5a949bdfd838c7a5e1757351417642906b885cba383a
|
7
|
+
data.tar.gz: 0347fc47ef4ababac2b591156523c933fad9b045d8d76889d627ced6be0720a8719f69a4d02c2fff0ac94cb46eed5a77a16a117486cc0e9764ab4ee833f99f7f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [v1.4.1](https://github.com/iberianpig/fusuma/tree/v1.4.1) (2020-02-27)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/iberianpig/fusuma/compare/v1.4.0...v1.4.1)
|
6
|
+
|
3
7
|
## [v1.4.0](https://github.com/iberianpig/fusuma/tree/v1.4.0) (2020-02-18)
|
4
8
|
|
5
9
|
[Full Changelog](https://github.com/iberianpig/fusuma/compare/v1.3.3...v1.4.0)
|
@@ -53,7 +57,6 @@
|
|
53
57
|
**Merged pull requests:**
|
54
58
|
|
55
59
|
- Merge modifier event records [\#142](https://github.com/iberianpig/fusuma/pull/142) ([iberianpig](https://github.com/iberianpig))
|
56
|
-
- Update rake requirement from ~\> 12.3 to ~\> 13.0 [\#136](https://github.com/iberianpig/fusuma/pull/136) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
57
60
|
|
58
61
|
## [v1.2.1](https://github.com/iberianpig/fusuma/tree/v1.2.1) (2019-10-19)
|
59
62
|
|
@@ -81,6 +84,7 @@
|
|
81
84
|
|
82
85
|
**Merged pull requests:**
|
83
86
|
|
87
|
+
- Update rake requirement from ~\> 12.3 to ~\> 13.0 [\#136](https://github.com/iberianpig/fusuma/pull/136) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
84
88
|
- Fixed Spelling mistake [\#128](https://github.com/iberianpig/fusuma/pull/128) ([thomascrha](https://github.com/thomascrha))
|
85
89
|
- \[Readme\] Added step to install Ruby [\#127](https://github.com/iberianpig/fusuma/pull/127) ([mmoraes-rafael](https://github.com/mmoraes-rafael))
|
86
90
|
- Plugin Based Architecture [\#116](https://github.com/iberianpig/fusuma/pull/116) ([iberianpig](https://github.com/iberianpig))
|
data/lib/fusuma.rb
CHANGED
@@ -33,8 +33,11 @@ module Fusuma
|
|
33
33
|
Plugin::Manager.require_plugins_from_relative
|
34
34
|
Plugin::Manager.require_plugins_from_config
|
35
35
|
|
36
|
+
MultiLogger.info '---------------------------------------------'
|
36
37
|
print_version
|
38
|
+
MultiLogger.info '---------------------------------------------'
|
37
39
|
print_enabled_plugins
|
40
|
+
MultiLogger.info '---------------------------------------------'
|
38
41
|
Kernel.exit(0) if option[:version]
|
39
42
|
|
40
43
|
print_device_list if option[:list]
|
@@ -44,23 +47,19 @@ module Fusuma
|
|
44
47
|
end
|
45
48
|
|
46
49
|
def print_version
|
47
|
-
MultiLogger.info '---------------------------------------------'
|
48
50
|
MultiLogger.info "Fusuma: #{Fusuma::VERSION}"
|
49
51
|
MultiLogger.info "libinput: #{Plugin::Inputs::LibinputCommandInput.new.version}"
|
50
52
|
MultiLogger.info "OS: #{`uname -rsv`}".strip
|
51
53
|
MultiLogger.info "Distribution: #{`cat /etc/issue`}".strip
|
52
54
|
MultiLogger.info "Desktop session: #{`echo $DESKTOP_SESSION $XDG_SESSION_TYPE`}".strip
|
53
|
-
MultiLogger.info '---------------------------------------------'
|
54
55
|
end
|
55
56
|
|
56
57
|
def print_enabled_plugins
|
57
|
-
MultiLogger.info '---------------------------------------------'
|
58
58
|
MultiLogger.info 'Enabled Plugins: '
|
59
59
|
Plugin::Manager.plugins
|
60
60
|
.reject { |k, _v| k.to_s =~ /Base/ }
|
61
61
|
.map { |_base, plugins| plugins.map { |plugin| " #{plugin}" } }
|
62
62
|
.flatten.sort.each { |name| MultiLogger.info(name) }
|
63
|
-
MultiLogger.info '---------------------------------------------'
|
64
63
|
end
|
65
64
|
|
66
65
|
def print_device_list
|
@@ -87,6 +86,7 @@ module Fusuma
|
|
87
86
|
def run
|
88
87
|
# TODO: run with multi thread
|
89
88
|
@inputs.first.run do |event|
|
89
|
+
clear_expired
|
90
90
|
filtered = filter(event)
|
91
91
|
parsed = parse(filtered)
|
92
92
|
buffered = buffer(parsed)
|
@@ -111,11 +111,9 @@ module Fusuma
|
|
111
111
|
# @param buffers [Array<Buffer>]
|
112
112
|
# @return [Array<Event>]
|
113
113
|
def detect(buffers)
|
114
|
-
@detectors.
|
114
|
+
@detectors.each_with_object([]) do |detector, detected|
|
115
115
|
if (event = detector.detect(buffers))
|
116
116
|
detected << event
|
117
|
-
else
|
118
|
-
detected
|
119
117
|
end
|
120
118
|
end
|
121
119
|
end
|
@@ -140,5 +138,9 @@ module Fusuma
|
|
140
138
|
|
141
139
|
executor&.execute(event)
|
142
140
|
end
|
141
|
+
|
142
|
+
def clear_expired
|
143
|
+
@buffers.each(&:clear_expired)
|
144
|
+
end
|
143
145
|
end
|
144
146
|
end
|
@@ -25,12 +25,21 @@ module Fusuma
|
|
25
25
|
# - other event buffer
|
26
26
|
return if event&.tag != source
|
27
27
|
|
28
|
-
delete_old_events
|
29
|
-
|
30
28
|
@events.push(event)
|
31
29
|
clear unless updating?
|
32
30
|
end
|
33
31
|
|
32
|
+
def clear_expired(current_time: Time.now)
|
33
|
+
@seconds_to_keep ||= (config_params(:seconds_to_keep) || DEFAULT_SECONDS_TO_KEEP)
|
34
|
+
@events.each do |e|
|
35
|
+
break if current_time - e.time < @seconds_to_keep
|
36
|
+
|
37
|
+
MultiLogger.debug("#{self.class.name}##{__method__}")
|
38
|
+
|
39
|
+
@events.delete(e)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
34
43
|
# @param attr [Symbol]
|
35
44
|
# @return [Float]
|
36
45
|
def sum_attrs(attr)
|
@@ -70,16 +79,6 @@ module Fusuma
|
|
70
79
|
|
71
80
|
private
|
72
81
|
|
73
|
-
# Delete old events pushed before 0.1sec
|
74
|
-
def delete_old_events
|
75
|
-
@seconds_to_keep ||= (config_params(:seconds_to_keep) || DEFAULT_SECONDS_TO_KEEP)
|
76
|
-
@events.each do |e|
|
77
|
-
break if Time.now - e.time < @seconds_to_keep
|
78
|
-
|
79
|
-
@events.delete(e)
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
82
|
def updating?
|
84
83
|
return true unless @events.last.record.status =~ /begin|end/
|
85
84
|
end
|
data/lib/fusuma/version.rb
CHANGED
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: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- iberianpig
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-02
|
11
|
+
date: 2020-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|