fusuma 1.4.1 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
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