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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dd4670c6b29d118e7663736911b14298e526c3cea9a7886032b45f3f1f6aafed
4
- data.tar.gz: 5b68ab3340e02aa3ed85b7985a8a58007d5567a81871c28465210d8e04561998
3
+ metadata.gz: ce8f9acb74d456ca14afae7b7cf83fa70e2c52adc81902e2e0eb7f1ff1d1c6aa
4
+ data.tar.gz: 121e54c98da13699bae297fea522f8004a73de33e438ffb9fd6161fb7b6df069
5
5
  SHA512:
6
- metadata.gz: 4776baf12386df866c0034cc7c6b2e9deeffdc33f59c651ec03fcb53a385306a221e8ac01f4b261d197488d9895e688b31fa97801daf3c621079c1d452319a0d
7
- data.tar.gz: c2bd43b3afe5748b8feaeec9a81b00c1753332d8abe239e7ef0a0a3305463004dd4210385f29e2a0cfe34853a8a0f2582a8984d35d90b05ee4acc592562931d1
6
+ metadata.gz: ce1727335f611a3d9ee099b8189bbf4e80d7f446173b696f46c1cada8b7185d19811a4227c73d3216e7e5a949bdfd838c7a5e1757351417642906b885cba383a
7
+ data.tar.gz: 0347fc47ef4ababac2b591156523c933fad9b045d8d76889d627ced6be0720a8719f69a4d02c2fff0ac94cb46eed5a77a16a117486cc0e9764ab4ee833f99f7f
@@ -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))
@@ -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.reduce([]) do |detected, detector|
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,6 +25,10 @@ module Fusuma
25
25
  @events.push(event)
26
26
  end
27
27
 
28
+ # clear old events
29
+ # @param current_time [Time]
30
+ def clear_expired(current_time: Time.now); end
31
+
28
32
  # clear buffer
29
33
  def clear
30
34
  @events.clear
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fusuma
4
- VERSION = '1.4.1'
4
+ VERSION = '1.5.0'
5
5
  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: 1.4.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-27 00:00:00.000000000 Z
11
+ date: 2020-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler