keystroker 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e79e2708ddc9adbcc189164cb5b02f82c3c1e106f1a95217828e32ca21f703b0
4
+ data.tar.gz: 149d1cf22ba0cc98a1335317dfd9207be766eff9b552955c55b4d7e0b703ad16
5
+ SHA512:
6
+ metadata.gz: 5d2c4ccd0a14562df9bc3c09348759c367810f7d92b4c84febb5b54f0d13068669408a25f5119c901a3338d0ab0834192079394d04da647b4ab989a4c4151514
7
+ data.tar.gz: d59b1dedf5705625ee16e8ee340248a354cef9247946545ba296b4fead871cde63e30027cd1d02dd998be234a71a5b123d58db95dd062bd48892c33e510d9cf4
Binary file
Binary file
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: keystroker.rb
4
+
5
+
6
+ require 'rexle'
7
+ require 'rexle-builder'
8
+
9
+
10
+ ## Usage
11
+
12
+ #
13
+ # s = '{tab} this is a test {enter} {ctrl+a}'
14
+ # ks = Keystroker.new
15
+ # ks.parse_hg0(s)
16
+ # ks.to_kbml
17
+
18
+
19
+ class Keystroker
20
+ using ColouredText
21
+
22
+ def initialize(debug: false)
23
+ @debug = debug
24
+ end
25
+
26
+ def parse_hg0(s)
27
+
28
+ xml = RexleBuilder.new
29
+
30
+ a3 = xml.kbml do
31
+
32
+ a = s.gsub(/\s*(?=\{)|(?<=\})\s*/,'').scan(/\{[^\}]+\}|./)\
33
+ .chunk {|x| x.length == 1}.map {|b, x| b ? x.join : x }.each do |x|
34
+
35
+ if x.is_a? Array then
36
+
37
+ x.each do |token|
38
+
39
+ token[1..-2].split(/\s*[;,]\s*/).each do |instruction|
40
+
41
+ puts ('instruction: ' + instruction.inspect).debug if @debug
42
+
43
+ if instruction =~ /\*\s*\d+/ then
44
+
45
+ key, n = instruction.split('*',2)
46
+ #n.to_i.times {keypress(key, duration: duration) }
47
+ xml.send(key.to_sym, {repeat: n})
48
+
49
+ else
50
+
51
+ keys = instruction.split('+')
52
+
53
+ if keys.length > 1 then
54
+ name = keys[0..-2].join('_').to_sym
55
+ xml.send(name, {key: keys.last})
56
+ else
57
+ xml.send(instruction.to_sym)
58
+ end
59
+ end
60
+
61
+ end
62
+ end
63
+
64
+ else
65
+ xml.type x
66
+ end
67
+
68
+ end
69
+
70
+ end
71
+
72
+ @doc = Rexle.new(a3)
73
+
74
+ end
75
+
76
+ def to_hg0()
77
+ end
78
+
79
+ def to_kbml(options={})
80
+ @doc.xml(options)
81
+ end
82
+
83
+ end
84
+
metadata ADDED
@@ -0,0 +1,91 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: keystroker
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkwNDIwMjEyMDUyWhcN
15
+ MjAwNDE5MjEyMDUyWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDaG21s
17
+ qJlHiooeWa4YQcxJ0YSrtC2j/RAzk9qlGdtDVh9mEQ+Zx7SRoRQ6mMmY3bd6qxAw
18
+ CUqOa4Nm7OLxDkG51VajQ/KYwCj/k6BclCRS/9nNmXxP7nbarJN35A4biS+A9UDU
19
+ /CllXdZ0LTUOz8/IYJVgwLj2mAT6BnRxbJqdUtHdOoW2KdkA4GsWGOs6/B0YfbGl
20
+ ctSrvuiSnWnLoyL1AAzegSJo5JvKt9fZdA2R7qYz3X+DcHva067f/BocwERqPe6j
21
+ y01jOk8sTlLMd5bM1VYKb2WWgTsU1VP7D4f0niVSpMbPeOp+Skeag2oIyk2eeBNx
22
+ +cAODV320oizgDSAjgusAjW/KTehFST21zmwc+JPbTualsJ5D9ygjZpwWtbjCuuh
23
+ YZeZVXTGLWHvKsycBlc+a73YE2Bh2npvclD+m25CYzt2sBNbBdJ20O8Dp/fynoFm
24
+ d9I0pMss78zbVVCTXnmRZ+hdGHo2wHl907MdbXKJSMnh6ubqrxE0AugkMEkCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUlkM5Tf4k
26
+ AHB+rlLq6pFK5q/lN4cwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAZc//D43SVZUOQaV4kTD09gruz2+VMqOgAB6ntuRy
29
+ Qlwq1BqDrifuBhMqcF8xRX2dtlTbwayZ22+5Yc8p+0DPX0bc0//WQdz5ZCjNqihe
30
+ U4hHFe6SfvSHtSiGOS4YYN4Oh1kCOgbDGB/8m9kLo0WnoDXFUnpkcOBEnAqIYxwv
31
+ fn3lfyLv3bag+gj7Fx+Ml1qKerM5JEvL/Y8B+0bohod0arxUj/lMOIxatQW1Orv9
32
+ q+l1iD++mPRPPPY0w/+XoSuekMeJ+Wd1+2enf9URrhocKUQzjZDiD5JBjVgrLD89
33
+ KxHD5tE9jLRt+79Lau/3NVesOvmhTUVLlA48QeMtVft3hnHjbvcNjtRDOG5hwHWj
34
+ g2xXCtesJ0gUEJCbfbLHG6vsqocy/mAMDuQXQI2ET3JFtvam0l0TVvVTWpHIBDbx
35
+ Y75jscjma5VGumEWUU9ZrhHuSQ+SNpMw9dZtARbRcf8TnE4LLF9jWLtekrmnjrXR
36
+ fbotKKSziDi68epQo5Nn6RKn
37
+ -----END CERTIFICATE-----
38
+ date: 2019-04-20 00:00:00.000000000 Z
39
+ dependencies:
40
+ - !ruby/object:Gem::Dependency
41
+ name: rexle-builder
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.5'
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 1.5.1
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '1.5'
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 1.5.1
60
+ description:
61
+ email: james@jamesrobertson.eu
62
+ executables: []
63
+ extensions: []
64
+ extra_rdoc_files: []
65
+ files:
66
+ - lib/keystroker.rb
67
+ homepage: https://github.com/jrobertson/keystroker
68
+ licenses:
69
+ - MIT
70
+ metadata: {}
71
+ post_install_message:
72
+ rdoc_options: []
73
+ require_paths:
74
+ - lib
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ required_rubygems_version: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ requirements: []
86
+ rubygems_version: 3.0.1
87
+ signing_key:
88
+ specification_version: 4
89
+ summary: Makes it easier to convert keystrokes from 1 format to another. Primary format
90
+ is KBML.
91
+ test_files: []
Binary file