fusuma 1.10.2 → 2.0.1

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.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +49 -7
  3. data/lib/fusuma.rb +91 -30
  4. data/lib/fusuma/config.rb +59 -60
  5. data/lib/fusuma/config/index.rb +39 -6
  6. data/lib/fusuma/config/searcher.rb +166 -0
  7. data/lib/fusuma/config/yaml_duplication_checker.rb +42 -0
  8. data/lib/fusuma/custom_process.rb +13 -0
  9. data/lib/fusuma/device.rb +22 -7
  10. data/lib/fusuma/environment.rb +6 -4
  11. data/lib/fusuma/hash_support.rb +40 -0
  12. data/lib/fusuma/libinput_command.rb +17 -21
  13. data/lib/fusuma/multi_logger.rb +2 -6
  14. data/lib/fusuma/plugin/base.rb +18 -15
  15. data/lib/fusuma/plugin/buffers/buffer.rb +3 -2
  16. data/lib/fusuma/plugin/buffers/gesture_buffer.rb +34 -25
  17. data/lib/fusuma/plugin/buffers/timer_buffer.rb +46 -0
  18. data/lib/fusuma/plugin/detectors/detector.rb +26 -5
  19. data/lib/fusuma/plugin/detectors/pinch_detector.rb +109 -58
  20. data/lib/fusuma/plugin/detectors/rotate_detector.rb +91 -50
  21. data/lib/fusuma/plugin/detectors/swipe_detector.rb +93 -56
  22. data/lib/fusuma/plugin/events/event.rb +5 -4
  23. data/lib/fusuma/plugin/events/records/context_record.rb +27 -0
  24. data/lib/fusuma/plugin/events/records/gesture_record.rb +9 -6
  25. data/lib/fusuma/plugin/events/records/index_record.rb +46 -14
  26. data/lib/fusuma/plugin/events/records/record.rb +1 -1
  27. data/lib/fusuma/plugin/events/records/text_record.rb +2 -1
  28. data/lib/fusuma/plugin/executors/command_executor.rb +21 -6
  29. data/lib/fusuma/plugin/executors/executor.rb +45 -3
  30. data/lib/fusuma/plugin/filters/filter.rb +1 -1
  31. data/lib/fusuma/plugin/filters/libinput_device_filter.rb +6 -7
  32. data/lib/fusuma/plugin/filters/libinput_timeout_filter.rb +2 -2
  33. data/lib/fusuma/plugin/inputs/input.rb +64 -8
  34. data/lib/fusuma/plugin/inputs/libinput_command_input.rb +19 -9
  35. data/lib/fusuma/plugin/inputs/timer_input.rb +63 -0
  36. data/lib/fusuma/plugin/manager.rb +22 -29
  37. data/lib/fusuma/plugin/parsers/libinput_gesture_parser.rb +10 -8
  38. data/lib/fusuma/plugin/parsers/parser.rb +8 -9
  39. data/lib/fusuma/string_support.rb +16 -0
  40. data/lib/fusuma/version.rb +1 -1
  41. data/spec/helpers/config_helper.rb +20 -0
  42. data/spec/lib/config/searcher_spec.rb +97 -0
  43. data/spec/lib/config_spec.rb +112 -0
  44. data/spec/lib/custom_process_spec.rb +28 -0
  45. data/spec/lib/device_spec.rb +98 -0
  46. data/spec/lib/dummy_config.yml +31 -0
  47. data/spec/lib/fusuma_spec.rb +103 -0
  48. data/spec/lib/libinput-list-devices_iberianpig-XPS-9360.txt +181 -0
  49. data/spec/lib/libinput-list-devices_magic_trackpad.txt +51 -0
  50. data/spec/lib/libinput-list-devices_razer_razer_blade.txt +252 -0
  51. data/spec/lib/libinput-list-devices_thejinx0r.txt +361 -0
  52. data/spec/lib/libinput-list-devices_unavailable.txt +36 -0
  53. data/spec/lib/libinput_command_spec.rb +167 -0
  54. data/spec/lib/plugin/base_spec.rb +74 -0
  55. data/spec/lib/plugin/buffers/buffer_spec.rb +80 -0
  56. data/spec/lib/plugin/buffers/dummy_buffer.rb +20 -0
  57. data/spec/lib/plugin/buffers/gesture_buffer_spec.rb +172 -0
  58. data/spec/lib/plugin/detectors/detector_spec.rb +43 -0
  59. data/spec/lib/plugin/detectors/dummy_detector.rb +24 -0
  60. data/spec/lib/plugin/detectors/pinch_detector_spec.rb +119 -0
  61. data/spec/lib/plugin/detectors/rotate_detector_spec.rb +125 -0
  62. data/spec/lib/plugin/detectors/swipe_detector_spec.rb +118 -0
  63. data/spec/lib/plugin/events/event_spec.rb +30 -0
  64. data/spec/lib/plugin/events/records/gesture_record_spec.rb +22 -0
  65. data/spec/lib/plugin/events/records/record_spec.rb +31 -0
  66. data/spec/lib/plugin/events/records/text_record_spec.rb +26 -0
  67. data/spec/lib/plugin/executors/command_executor_spec.rb +57 -0
  68. data/spec/lib/plugin/executors/executor_spec.rb +160 -0
  69. data/spec/lib/plugin/filters/filter_spec.rb +92 -0
  70. data/spec/lib/plugin/filters/libinput_filter_spec.rb +120 -0
  71. data/spec/lib/plugin/inputs/input_spec.rb +70 -0
  72. data/spec/lib/plugin/inputs/libinput_command_input_spec.rb +120 -0
  73. data/spec/lib/plugin/inputs/timer_input_spec.rb +40 -0
  74. data/spec/lib/plugin/manager_spec.rb +27 -0
  75. data/spec/lib/plugin/parsers/parser_spec.rb +45 -0
  76. data/spec/spec_helper.rb +20 -0
  77. metadata +91 -168
  78. data/.github/FUNDING.yml +0 -8
  79. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
  80. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
  81. data/.github/pull_request_template.md +0 -9
  82. data/.github/stale.yml +0 -18
  83. data/.gitignore +0 -17
  84. data/.reek.yml +0 -96
  85. data/.rspec +0 -2
  86. data/.rubocop.yml +0 -33
  87. data/.rubocop_todo.yml +0 -40
  88. data/.travis.yml +0 -11
  89. data/CHANGELOG.md +0 -419
  90. data/CODE_OF_CONDUCT.md +0 -74
  91. data/CONTRIBUTING.md +0 -72
  92. data/Gemfile +0 -6
  93. data/Rakefile +0 -15
  94. data/fusuma.gemspec +0 -38
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require './lib/fusuma/plugin/inputs/input'
5
+
6
+ module Fusuma
7
+ module Plugin
8
+ module Inputs
9
+ RSpec.describe Input do
10
+ let(:input) { described_class.new }
11
+
12
+ describe '#io' do
13
+ subject { input.io { 'dummy' } }
14
+ it { expect { subject }.to raise_error(NotImplementedError) }
15
+ end
16
+
17
+ describe '#create_event' do
18
+ subject { input.create_event }
19
+ it { is_expected.to be_a Events::Event }
20
+
21
+ it { expect(input.tag).to eq 'input' }
22
+ end
23
+
24
+ describe '.select' do
25
+ subject { Input.select([DummyInput.new]) }
26
+
27
+ it { is_expected.to be_a Events::Event }
28
+ end
29
+ end
30
+
31
+ class DummyInput < Input
32
+ def io
33
+ @io ||= begin
34
+ r, w = IO.pipe
35
+ w.puts 'hoge'
36
+ w.close
37
+ r
38
+ end
39
+ end
40
+ end
41
+
42
+ RSpec.describe DummyInput do
43
+ let(:dummy_input) { described_class.new }
44
+
45
+ around do |example|
46
+ ConfigHelper.load_config_yml = <<~CONFIG
47
+ plugin:
48
+ inputs:
49
+ dummy_input:
50
+ dummy: dummy
51
+ CONFIG
52
+
53
+ example.run
54
+
55
+ Config.custom_path = nil
56
+ end
57
+
58
+ describe '#io' do
59
+ subject { dummy_input.io }
60
+ it { is_expected.to be_a IO }
61
+ end
62
+
63
+ describe '#config_params' do
64
+ subject { dummy_input.config_params }
65
+ it { is_expected.to eq(dummy: 'dummy') }
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,120 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require './lib/fusuma/plugin/inputs/libinput_command_input'
5
+
6
+ module Fusuma
7
+ module Plugin
8
+ module Inputs
9
+ RSpec.describe LibinputCommandInput do
10
+ let(:input) { described_class.new }
11
+
12
+ describe '#io' do
13
+ before do
14
+ @dummy_io = StringIO.new('dummy')
15
+ dummy_pid = 999_999_999
16
+ libinput_command = instance_double(LibinputCommand)
17
+ allow(LibinputCommand).to receive(:new).and_return(libinput_command)
18
+ allow(libinput_command).to receive(:debug_events).and_return([dummy_pid, @dummy_io])
19
+ end
20
+
21
+ it { expect(input.io).to eq @dummy_io }
22
+ end
23
+
24
+ describe '#libinput_options' do
25
+ it { expect(input.libinput_options).to be_a Array }
26
+
27
+ context 'when device: awesome_device is given as config_params' do
28
+ around do |example|
29
+ ConfigHelper.load_config_yml = <<~CONFIG
30
+ plugin:
31
+ inputs:
32
+ libinput_command_input:
33
+ device: awesome device
34
+ CONFIG
35
+
36
+ example.run
37
+
38
+ Config.custom_path = nil
39
+ end
40
+ it "contains --device='awesome device'" do
41
+ expect(input.libinput_options).to be_include "--device='awesome device'"
42
+ end
43
+ end
44
+
45
+ context 'when enable-tap: true is given as config_params' do
46
+ around do |example|
47
+ ConfigHelper.load_config_yml = <<~CONFIG
48
+ plugin:
49
+ inputs:
50
+ libinput_command_input:
51
+ enable-tap: true
52
+ CONFIG
53
+
54
+ example.run
55
+
56
+ Config.custom_path = nil
57
+ end
58
+ it 'contains --enable-tap' do
59
+ expect(input.libinput_options).to be_include '--enable-tap'
60
+ end
61
+ end
62
+
63
+ context 'when enable-dwt: true is given as config_params' do
64
+ around do |example|
65
+ ConfigHelper.load_config_yml = <<~CONFIG
66
+ plugin:
67
+ inputs:
68
+ libinput_command_input:
69
+ enable-dwt: true
70
+ CONFIG
71
+
72
+ example.run
73
+
74
+ Config.custom_path = nil
75
+ end
76
+ it 'contains --enable-dwt' do
77
+ expect(input.libinput_options).to be_include '--enable-dwt'
78
+ end
79
+ end
80
+
81
+ context 'when show-keycodes: true is given as config_params' do
82
+ around do |example|
83
+ ConfigHelper.load_config_yml = <<~CONFIG
84
+ plugin:
85
+ inputs:
86
+ libinput_command_input:
87
+ show-keycodes: true
88
+ CONFIG
89
+
90
+ example.run
91
+
92
+ Config.custom_path = nil
93
+ end
94
+ it 'contains --show-keycodes' do
95
+ expect(input.libinput_options).to be_include '--show-keycodes'
96
+ end
97
+ end
98
+
99
+ context 'when verbose: true is given as config_params' do
100
+ around do |example|
101
+ ConfigHelper.load_config_yml = <<~CONFIG
102
+ plugin:
103
+ inputs:
104
+ libinput_command_input:
105
+ verbose: true
106
+ CONFIG
107
+
108
+ example.run
109
+
110
+ Config.custom_path = nil
111
+ end
112
+ it 'contains --verbose' do
113
+ expect(input.libinput_options).to be_include '--verbose'
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require './lib/fusuma/plugin/inputs/timer_input'
5
+
6
+ module Fusuma
7
+ module Plugin
8
+ module Inputs
9
+ RSpec.describe TimerInput do
10
+ before do
11
+ @dummy_read = StringIO.new('dummy_read')
12
+ @dummy_write = StringIO.new('dummy_write')
13
+ @input = TimerInput.new
14
+ allow(@input).to receive(:create_io).and_return [@dummy_read, @dummy_write]
15
+ allow(@input).to receive(:fork)
16
+ allow(Process).to receive(:detach).with(anything)
17
+ end
18
+
19
+ describe '#io' do
20
+ it { expect(@input.io).to eq @dummy_read }
21
+
22
+ it 'should call #create_io' do
23
+ expect(@input).to receive(:create_io)
24
+ expect(@input).to receive(:start)
25
+ @input.io
26
+ end
27
+ end
28
+
29
+ describe '#start' do
30
+ it {
31
+ expect(@input).to receive(:fork).and_yield do |block_context|
32
+ expect(block_context).to receive(:timer_loop).with(@dummy_read, @dummy_write)
33
+ end
34
+ @input.start(@dummy_read, @dummy_write)
35
+ }
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require './lib/fusuma/plugin/base'
5
+ require './lib/fusuma/plugin/manager'
6
+
7
+ module Fusuma
8
+ module Plugin
9
+ RSpec.describe Manager do
10
+ describe '#require_siblings_from_plugin_dir' do
11
+ Manager.new(Base).require_siblings_from_plugin_dir
12
+ subject { Manager.new(Base).require_siblings_from_plugin_dir }
13
+ it { expect { subject }.not_to raise_error(LoadError) }
14
+ end
15
+
16
+ describe '#require_siblings_from_gem' do
17
+ subject { Manager.new(Inputs::Input).require_siblings_from_gem }
18
+ it { expect { subject }.not_to raise_error(LoadError) }
19
+ end
20
+
21
+ describe '.plugins' do
22
+ subject { Manger.plugins }
23
+ pending
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require './lib/fusuma/plugin/parsers/parser'
5
+ require './lib/fusuma/plugin/events/event'
6
+
7
+ module Fusuma
8
+ module Plugin
9
+ module Parsers
10
+ class DummyParser < Parser
11
+ DEFAULT_SOURCE = 'dummy_input'
12
+ end
13
+
14
+ RSpec.describe Parser do
15
+ let(:parser) { DummyParser.new }
16
+
17
+ around do |example|
18
+ ConfigHelper.load_config_yml = <<~CONFIG
19
+ plugin:
20
+ parsers:
21
+ dummy_parser:
22
+ dummy: dummy
23
+ CONFIG
24
+
25
+ example.run
26
+
27
+ Config.custom_path = nil
28
+ end
29
+
30
+ describe '#source' do
31
+ subject { parser.source }
32
+
33
+ it { is_expected.to be DummyParser::DEFAULT_SOURCE }
34
+ end
35
+
36
+ describe '#parse' do
37
+ subject { parser.parse(event) }
38
+ let(:event) { Events::Event.new(tag: 'dummy_input', record: 'dummy') }
39
+
40
+ it { is_expected.to be event }
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/setup'
4
+ require 'helpers/config_helper'
5
+ require 'coveralls'
6
+ Coveralls.wear!
7
+
8
+ RSpec.configure do |config|
9
+ # Enable flags like --only-failures and --next-failure
10
+ config.example_status_persistence_file_path = '.rspec_status'
11
+
12
+ # Disable RSpec exposing methods globally on `Module` and `main`
13
+ config.disable_monkey_patching!
14
+
15
+ config.expect_with :rspec do |c|
16
+ c.syntax = :expect
17
+ end
18
+
19
+ config.include(Fusuma::ConfigHelper)
20
+ end
metadata CHANGED
@@ -1,163 +1,23 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fusuma
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.2
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - iberianpig
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-23 00:00:00.000000000 Z
11
+ date: 2021-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: posix-spawn
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: coveralls
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: github_changelog_generator
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.14'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.14'
55
- - !ruby/object:Gem::Dependency
56
- name: pry-byebug
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '3.4'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '3.4'
69
- - !ruby/object:Gem::Dependency
70
- name: pry-doc
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: pry-inline
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rake
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '13.0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '13.0'
111
- - !ruby/object:Gem::Dependency
112
- name: reek
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: rspec
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '3.0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '3.0'
139
- - !ruby/object:Gem::Dependency
140
- name: rubocop
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: yard
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
20
+ type: :runtime
161
21
  prerelease: false
162
22
  version_requirements: !ruby/object:Gem::Requirement
163
23
  requirements:
@@ -174,44 +34,33 @@ executables:
174
34
  extensions: []
175
35
  extra_rdoc_files: []
176
36
  files:
177
- - ".github/FUNDING.yml"
178
- - ".github/ISSUE_TEMPLATE/bug_report.md"
179
- - ".github/ISSUE_TEMPLATE/feature_request.md"
180
- - ".github/pull_request_template.md"
181
- - ".github/stale.yml"
182
- - ".gitignore"
183
- - ".reek.yml"
184
- - ".rspec"
185
- - ".rubocop.yml"
186
- - ".rubocop_todo.yml"
187
- - ".travis.yml"
188
- - CHANGELOG.md
189
- - CODE_OF_CONDUCT.md
190
- - CONTRIBUTING.md
191
- - Gemfile
192
37
  - LICENSE
193
38
  - README.md
194
- - Rakefile
195
39
  - bin/console
196
40
  - bin/setup
197
41
  - exe/fusuma
198
- - fusuma.gemspec
199
42
  - lib/fusuma.rb
200
43
  - lib/fusuma/config.rb
201
44
  - lib/fusuma/config.yml
202
45
  - lib/fusuma/config/index.rb
46
+ - lib/fusuma/config/searcher.rb
47
+ - lib/fusuma/config/yaml_duplication_checker.rb
48
+ - lib/fusuma/custom_process.rb
203
49
  - lib/fusuma/device.rb
204
50
  - lib/fusuma/environment.rb
51
+ - lib/fusuma/hash_support.rb
205
52
  - lib/fusuma/libinput_command.rb
206
53
  - lib/fusuma/multi_logger.rb
207
54
  - lib/fusuma/plugin/base.rb
208
55
  - lib/fusuma/plugin/buffers/buffer.rb
209
56
  - lib/fusuma/plugin/buffers/gesture_buffer.rb
57
+ - lib/fusuma/plugin/buffers/timer_buffer.rb
210
58
  - lib/fusuma/plugin/detectors/detector.rb
211
59
  - lib/fusuma/plugin/detectors/pinch_detector.rb
212
60
  - lib/fusuma/plugin/detectors/rotate_detector.rb
213
61
  - lib/fusuma/plugin/detectors/swipe_detector.rb
214
62
  - lib/fusuma/plugin/events/event.rb
63
+ - lib/fusuma/plugin/events/records/context_record.rb
215
64
  - lib/fusuma/plugin/events/records/gesture_record.rb
216
65
  - lib/fusuma/plugin/events/records/index_record.rb
217
66
  - lib/fusuma/plugin/events/records/record.rb
@@ -223,16 +72,54 @@ files:
223
72
  - lib/fusuma/plugin/filters/libinput_timeout_filter.rb
224
73
  - lib/fusuma/plugin/inputs/input.rb
225
74
  - lib/fusuma/plugin/inputs/libinput_command_input.rb
75
+ - lib/fusuma/plugin/inputs/timer_input.rb
226
76
  - lib/fusuma/plugin/manager.rb
227
77
  - lib/fusuma/plugin/parsers/libinput_gesture_parser.rb
228
78
  - lib/fusuma/plugin/parsers/parser.rb
79
+ - lib/fusuma/string_support.rb
229
80
  - lib/fusuma/version.rb
81
+ - spec/helpers/config_helper.rb
82
+ - spec/lib/config/searcher_spec.rb
83
+ - spec/lib/config_spec.rb
84
+ - spec/lib/custom_process_spec.rb
85
+ - spec/lib/device_spec.rb
86
+ - spec/lib/dummy_config.yml
87
+ - spec/lib/fusuma_spec.rb
88
+ - spec/lib/libinput-list-devices_iberianpig-XPS-9360.txt
89
+ - spec/lib/libinput-list-devices_magic_trackpad.txt
90
+ - spec/lib/libinput-list-devices_razer_razer_blade.txt
91
+ - spec/lib/libinput-list-devices_thejinx0r.txt
92
+ - spec/lib/libinput-list-devices_unavailable.txt
93
+ - spec/lib/libinput_command_spec.rb
94
+ - spec/lib/plugin/base_spec.rb
95
+ - spec/lib/plugin/buffers/buffer_spec.rb
96
+ - spec/lib/plugin/buffers/dummy_buffer.rb
97
+ - spec/lib/plugin/buffers/gesture_buffer_spec.rb
98
+ - spec/lib/plugin/detectors/detector_spec.rb
99
+ - spec/lib/plugin/detectors/dummy_detector.rb
100
+ - spec/lib/plugin/detectors/pinch_detector_spec.rb
101
+ - spec/lib/plugin/detectors/rotate_detector_spec.rb
102
+ - spec/lib/plugin/detectors/swipe_detector_spec.rb
103
+ - spec/lib/plugin/events/event_spec.rb
104
+ - spec/lib/plugin/events/records/gesture_record_spec.rb
105
+ - spec/lib/plugin/events/records/record_spec.rb
106
+ - spec/lib/plugin/events/records/text_record_spec.rb
107
+ - spec/lib/plugin/executors/command_executor_spec.rb
108
+ - spec/lib/plugin/executors/executor_spec.rb
109
+ - spec/lib/plugin/filters/filter_spec.rb
110
+ - spec/lib/plugin/filters/libinput_filter_spec.rb
111
+ - spec/lib/plugin/inputs/input_spec.rb
112
+ - spec/lib/plugin/inputs/libinput_command_input_spec.rb
113
+ - spec/lib/plugin/inputs/timer_input_spec.rb
114
+ - spec/lib/plugin/manager_spec.rb
115
+ - spec/lib/plugin/parsers/parser_spec.rb
116
+ - spec/spec_helper.rb
230
117
  homepage: https://github.com/iberianpig/fusuma
231
118
  licenses:
232
119
  - MIT
233
120
  metadata:
234
121
  yard.run: yri
235
- post_install_message:
122
+ post_install_message:
236
123
  rdoc_options: []
237
124
  require_paths:
238
125
  - lib
@@ -240,15 +127,51 @@ required_ruby_version: !ruby/object:Gem::Requirement
240
127
  requirements:
241
128
  - - ">="
242
129
  - !ruby/object:Gem::Version
243
- version: '2.3'
130
+ version: 2.5.1
244
131
  required_rubygems_version: !ruby/object:Gem::Requirement
245
132
  requirements:
246
133
  - - ">="
247
134
  - !ruby/object:Gem::Version
248
135
  version: '0'
249
136
  requirements: []
250
- rubygems_version: 3.0.3
251
- signing_key:
137
+ rubygems_version: 3.1.4
138
+ signing_key:
252
139
  specification_version: 4
253
- summary: Multitouch gestures with libinput dirver on X11, Linux
254
- test_files: []
140
+ summary: Multitouch gestures with libinput driver, Linux
141
+ test_files:
142
+ - spec/lib/device_spec.rb
143
+ - spec/lib/config/searcher_spec.rb
144
+ - spec/lib/libinput-list-devices_iberianpig-XPS-9360.txt
145
+ - spec/lib/dummy_config.yml
146
+ - spec/lib/libinput-list-devices_magic_trackpad.txt
147
+ - spec/lib/custom_process_spec.rb
148
+ - spec/lib/plugin/base_spec.rb
149
+ - spec/lib/plugin/inputs/libinput_command_input_spec.rb
150
+ - spec/lib/plugin/inputs/input_spec.rb
151
+ - spec/lib/plugin/inputs/timer_input_spec.rb
152
+ - spec/lib/plugin/events/records/record_spec.rb
153
+ - spec/lib/plugin/events/records/gesture_record_spec.rb
154
+ - spec/lib/plugin/events/records/text_record_spec.rb
155
+ - spec/lib/plugin/events/event_spec.rb
156
+ - spec/lib/plugin/filters/libinput_filter_spec.rb
157
+ - spec/lib/plugin/filters/filter_spec.rb
158
+ - spec/lib/plugin/detectors/detector_spec.rb
159
+ - spec/lib/plugin/detectors/swipe_detector_spec.rb
160
+ - spec/lib/plugin/detectors/rotate_detector_spec.rb
161
+ - spec/lib/plugin/detectors/pinch_detector_spec.rb
162
+ - spec/lib/plugin/detectors/dummy_detector.rb
163
+ - spec/lib/plugin/manager_spec.rb
164
+ - spec/lib/plugin/buffers/dummy_buffer.rb
165
+ - spec/lib/plugin/buffers/buffer_spec.rb
166
+ - spec/lib/plugin/buffers/gesture_buffer_spec.rb
167
+ - spec/lib/plugin/parsers/parser_spec.rb
168
+ - spec/lib/plugin/executors/executor_spec.rb
169
+ - spec/lib/plugin/executors/command_executor_spec.rb
170
+ - spec/lib/libinput-list-devices_unavailable.txt
171
+ - spec/lib/libinput_command_spec.rb
172
+ - spec/lib/fusuma_spec.rb
173
+ - spec/lib/libinput-list-devices_razer_razer_blade.txt
174
+ - spec/lib/libinput-list-devices_thejinx0r.txt
175
+ - spec/lib/config_spec.rb
176
+ - spec/helpers/config_helper.rb
177
+ - spec/spec_helper.rb