evdev 0.1.0 → 1.0.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
  SHA1:
3
- metadata.gz: 6db3c1910ac57b43eba5481021d04ff0035eb694
4
- data.tar.gz: b2ba03ea15a327dba67f96d3bec5faa706dd5f68
3
+ metadata.gz: e106675ef1b1fd34a173c2f99140c657ac6e2fbb
4
+ data.tar.gz: 270c7e4978fd27ee9c2b1d96a39f944a3fc69887
5
5
  SHA512:
6
- metadata.gz: 4687f24d2dfa42270ff8c9406d8dc084cf94bc9787ddd6b1b38dd525f8e908839affb9e2b530de94a958f8fafd88d355872bc04d3e41580080f7b59b36bb1202
7
- data.tar.gz: ac2701a0dfca11d5fd9f0066dcd1f7a66f0b920887e6a741cbfdccddf9d10fd7b9961182725ad53a9a07e1ebf9ee562800e395e1de6a33920d9eb2949ee2f686
6
+ metadata.gz: 07c93e2a472f8a5eb579ad3bb7360c588a94290e9a9642631afbaab20047c5709d7d058cb879e893a9fbb7b46dee229802e94aedde7a6e82b08203d313812048
7
+ data.tar.gz: 4c26f7f335ddcf908ad9ed667663c4bce3e14210e7682b7b4045831f1b1e92546441272464dca06d37dd26c83297f5d5bb88b4ab18d4a3d6a592c526df83f18b
data/Gemfile CHANGED
@@ -1,3 +1,8 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ group :test do
6
+ gem "rspec", "~> 3.5"
7
+ gem 'rspec-is_expected_block', '~> 3.0'
8
+ end
data/README.md CHANGED
@@ -38,7 +38,7 @@ keyboard.phys # => "usb-0000:00:1d.2-1/input0"
38
38
  keyboard.uniq # => ""
39
39
  keyboard.vendor_id # => 1133
40
40
  keyboard.product_id # => 50473
41
- keyboard.bustype # => :USB
41
+ keyboard.bustype # => 3 (LinuxInput::BUS_USB)
42
42
  keyboard.version # => 273
43
43
  keyboard.driver_version # => 65537
44
44
  keyboard.has_property? :pointer # => false
@@ -60,21 +60,24 @@ the code and it derives the implied type from it internally.
60
60
  keyboard.supports_event? :KEY_A # => true
61
61
  keyboard.supports_event? :ABS_X # => false
62
62
 
63
- key_a_handler = keyboard.on(:KEY_A) do |value|
64
- puts "key 'a' #{%w(up down repeat)[value]}"
63
+ key_handler = keyboard.on(:KEY_A, :KEY_S, :KEY_D, :KEY_F) do |state, key|
64
+ puts "#{%w(released pressed repeated)[state]} #{key}"
65
65
  end
66
66
 
67
67
  loop do
68
- Kernel.select([keyboard.event_channel])
68
+ begin
69
69
  keyboard.handle_event
70
- # => puts "key 'a' down" and "key 'a' up" on a single KEY_A stroke
70
+ rescue Evdev::AwaitEvent
71
+ Kernel.select([keyboard.event_channel])
72
+ retry
73
+ end
71
74
  end
72
75
  ```
73
76
 
74
77
  Removing the handler:
75
78
 
76
79
  ```ruby
77
- keyboard.off(:KEY_A, key_a_handler)
80
+ key_handler.cancel
78
81
  ```
79
82
 
80
83
  Evdev includes the [CallbacksAttachable](https://github.com/christopheraue/ruby-callbacks_attachable)
data/evdev.gemspec CHANGED
@@ -1,13 +1,10 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'evdev/version'
1
+ require_relative 'lib/evdev/version'
5
2
 
6
3
  Gem::Specification.new do |spec|
7
4
  spec.name = "evdev"
8
5
  spec.version = Evdev::VERSION
9
6
  spec.authors = ["Christopher Aue"]
10
- spec.email = ["mail@christopheraue.net"]
7
+ spec.email = ["rubygems@christopheraue.net"]
11
8
 
12
9
  spec.summary = %q{A ruby object wrapper around libevdev bindings.}
13
10
  spec.homepage = "https://github.com/christopheraue/ruby-evdev"
@@ -18,10 +15,5 @@ Gem::Specification.new do |spec|
18
15
  spec.require_paths = ["lib"]
19
16
 
20
17
  spec.add_runtime_dependency "libevdev", "~> 1.0"
21
- spec.add_runtime_dependency "callbacks_attachable", "~> 0.1"
22
- spec.add_development_dependency "bundler", "~> 1.8"
23
- spec.add_development_dependency "rake", "~> 10.0"
24
- spec.add_development_dependency "rspec", "~> 3.2.0"
25
- spec.add_development_dependency "rspec-its"
26
- spec.add_development_dependency "rspec-mocks-matchers-send_message"
18
+ spec.add_runtime_dependency "callbacks_attachable", "~> 2.3"
27
19
  end
data/lib/evdev.rb CHANGED
@@ -1,13 +1,15 @@
1
- require "bundler/setup"
2
1
  require "callbacks_attachable"
3
2
  require "libevdev"
4
- require "evdev/version"
5
- require "evdev/converter"
6
- require "evdev/abs_axis"
3
+
4
+ require_relative "evdev/version"
5
+ require_relative "evdev/converter"
6
+ require_relative "evdev/abs_axis"
7
7
 
8
8
  class Evdev
9
9
  include CallbacksAttachable
10
10
 
11
+ module AwaitEvent; end
12
+
11
13
  class << self
12
14
  def finalize(device)
13
15
  proc { Libevdev.free(device) }
@@ -86,7 +88,10 @@ class Evdev
86
88
  def handle_event(mode = :blocking)
87
89
  event = LinuxInput::InputEvent.new
88
90
  Libevdev.next_event(@device, Libevdev.const_get(:"READ_FLAG_#{mode.upcase}"), event.pointer)
89
- trigger(Converter.int_to_name(event[:type], event[:code]), event[:value])
91
+ event_name = Converter.int_to_name(event[:type], event[:code])
92
+ trigger(event_name, event[:value], event_name)
93
+ rescue Errno::EAGAIN => e
94
+ raise e.extend AwaitEvent
90
95
  end
91
96
 
92
97
  def events_pending?
data/lib/evdev/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Evdev
2
- VERSION = "0.1.0"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evdev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christopher Aue
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-30 00:00:00.000000000 Z
11
+ date: 2017-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: libevdev
@@ -30,93 +30,22 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.1'
33
+ version: '2.3'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.1'
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.8'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.8'
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '10.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '10.0'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 3.2.0
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 3.2.0
83
- - !ruby/object:Gem::Dependency
84
- name: rspec-its
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: rspec-mocks-matchers-send_message
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
40
+ version: '2.3'
111
41
  description:
112
42
  email:
113
- - mail@christopheraue.net
43
+ - rubygems@christopheraue.net
114
44
  executables: []
115
45
  extensions: []
116
46
  extra_rdoc_files: []
117
47
  files:
118
48
  - ".gitignore"
119
- - ".rakeTasks"
120
49
  - ".rspec"
121
50
  - ".travis.yml"
122
51
  - Gemfile
@@ -148,7 +77,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
77
  version: '0'
149
78
  requirements: []
150
79
  rubyforge_project:
151
- rubygems_version: 2.4.8
80
+ rubygems_version: 2.6.11
152
81
  signing_key:
153
82
  specification_version: 4
154
83
  summary: A ruby object wrapper around libevdev bindings.
data/.rakeTasks DELETED
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Settings><!--This file was automatically generated by Ruby plugin.
3
- You are allowed to:
4
- 1. Remove rake task
5
- 2. Add existing rake tasks
6
- To add existing rake tasks automatically delete this file and reload the project.
7
- --><RakeGroup description="" fullCmd="" taksId="rake"><RakeTask description="Build evdev-0.1.0.gem into the pkg directory" fullCmd="build" taksId="build" /><RakeTask description="Build and install evdev-0.1.0.gem into system gems" fullCmd="install" taksId="install" /><RakeTask description="Create tag v0.1.0 and build and push evdev-0.1.0.gem to Rubygems" fullCmd="release" taksId="release" /><RakeGroup description="" fullCmd="" taksId="release"><RakeTask description="" fullCmd="release:guard_clean" taksId="guard_clean" /><RakeTask description="" fullCmd="release:rubygem_push" taksId="rubygem_push" /><RakeTask description="" fullCmd="release:source_control_push" taksId="source_control_push" /></RakeGroup></RakeGroup></Settings>