keyboard_reactor 0.0.3 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -12
- data/lib/keyboard_reactor/output.rb +11 -13
- data/lib/keyboard_reactor/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c56aa60987558a2554ede6c15b455ac7b86938d
|
4
|
+
data.tar.gz: ff59517928b78ebd6d6581d43fa41a97846a9433
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f993251271d1657b2f563c3e8aa268479c4391678bff8fe432badc91fbe467032d1e14f47312fb4647ede694994aaf8f87399dbc02918aed1fe9ffbd9570a4cc
|
7
|
+
data.tar.gz: 22cce8db810228df008752dffe6597cf38f61de2717e3e8cc77cf7a0d5d4589a24a6dd14b3143a2aad7f796e65edc7f798b21d2a87cb9593a6ca7fd66d876911
|
data/README.md
CHANGED
@@ -10,12 +10,15 @@ Reactor uses the awesome [qmk_firmware](http://github.com/jackhumbert/qmk_firmwa
|
|
10
10
|
## General process
|
11
11
|
|
12
12
|
- Take JSON input
|
13
|
-
- Generate a .c template file
|
14
|
-
-
|
13
|
+
- Generate a .c template file based on the JSON and the liquid template. Name it something unique
|
14
|
+
- Create a hex file by compiling that c file. Name it something unique too
|
15
|
+
- Read .hex file and return it
|
15
16
|
|
16
17
|
# Local development
|
17
18
|
|
18
|
-
You can run the tests with `be guard` - which will watch for changes in ruby files and run whenever they do
|
19
|
+
You can run the tests with `be guard` - which will watch for changes in ruby files and run whenever they do.
|
20
|
+
|
21
|
+
Testing is done in ruby 2.2.2
|
19
22
|
|
20
23
|
## Updating the firmware
|
21
24
|
|
@@ -49,7 +52,9 @@ To update the subtree from the qmk_firmware repository, pull the updates from qm
|
|
49
52
|
|
50
53
|
#### Linux
|
51
54
|
|
52
|
-
|
55
|
+
Using the instructions from [the teensy loader build environment](https://www.pjrc.com/teensy/gcc.html):
|
56
|
+
|
57
|
+
sudo apt-get install gcc-avr binutils-avr avr-libc
|
53
58
|
|
54
59
|
#### Mac OSX
|
55
60
|
|
@@ -69,11 +74,3 @@ Then run `make` for the default keymap, or
|
|
69
74
|
|
70
75
|
for your own keymap. This requires a files keymap_yourown.c in the subfolder keymaps.
|
71
76
|
You should end up with a `ergodox_ez.hex` file, which you can use with the [Teensy loader](http://www.pjrc.com/teensy/loader_cli.html) or [Teensy GUI](https://www.pjrc.com/teensy/loader.html)
|
72
|
-
|
73
|
-
#### Windows
|
74
|
-
|
75
|
-
TBD
|
76
|
-
|
77
|
-
## License
|
78
|
-
|
79
|
-
MIT, see LICENSE
|
@@ -5,19 +5,19 @@ module KeyboardReactor
|
|
5
5
|
@id = "#{(Time.now.to_f * 100).round}reactor"
|
6
6
|
end
|
7
7
|
|
8
|
-
attr_reader :tmp_dir, :keyboard_hash, :
|
9
|
-
attr_writer :
|
8
|
+
attr_reader :tmp_dir, :keyboard_hash, :find_kind, :id
|
9
|
+
attr_writer :keyboard_kind
|
10
10
|
|
11
11
|
def self.relative_path(path)
|
12
12
|
File.expand_path(path, BASE_DIR)
|
13
13
|
end
|
14
14
|
|
15
|
-
def self.
|
15
|
+
def self.known_kinds
|
16
16
|
COLUMNS.keys
|
17
17
|
end
|
18
18
|
|
19
19
|
def firmware_path
|
20
|
-
self.class.relative_path("firmware/keyboard/#{
|
20
|
+
self.class.relative_path("firmware/keyboard/#{keyboard_kind}")
|
21
21
|
end
|
22
22
|
|
23
23
|
def c_file_path
|
@@ -28,21 +28,21 @@ module KeyboardReactor
|
|
28
28
|
@hex_file_path ||= self.class.relative_path("#{firmware_path}/#{@id}.hex")
|
29
29
|
end
|
30
30
|
|
31
|
-
def
|
32
|
-
@
|
33
|
-
return @
|
34
|
-
fail "Unknown keyboard
|
31
|
+
def keyboard_kind
|
32
|
+
@keyboard_kind ||= @keyboard_hash['kind']
|
33
|
+
return @keyboard_kind.to_s if self.class.known_kinds.include?(@keyboard_kind)
|
34
|
+
fail "Unknown keyboard kind '#{@keyboard_kind}', not one of #{self.class.known_kinds}"
|
35
35
|
end
|
36
36
|
|
37
37
|
def layout_template
|
38
|
-
path = "./keyboard_reactor/templates/#{
|
38
|
+
path = "./keyboard_reactor/templates/#{keyboard_kind}.liquid"
|
39
39
|
File.read(self.class.relative_path(path))
|
40
40
|
end
|
41
41
|
|
42
42
|
def c_file
|
43
43
|
Liquid::Template.parse(layout_template)
|
44
44
|
.render(
|
45
|
-
'columns' => COLUMNS[
|
45
|
+
'columns' => COLUMNS[keyboard_kind],
|
46
46
|
'layout' => @keyboard_hash
|
47
47
|
)
|
48
48
|
end
|
@@ -52,8 +52,6 @@ module KeyboardReactor
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def hex
|
55
|
-
return default_hex
|
56
|
-
|
57
55
|
write_c_file
|
58
56
|
# Override the default target with our ID so that we create unique files
|
59
57
|
`cd #{firmware_path.to_s} && make clean && TARGET=#{id} make -e KEYMAP="#{id}"`
|
@@ -70,7 +68,7 @@ module KeyboardReactor
|
|
70
68
|
end
|
71
69
|
|
72
70
|
def default_hex
|
73
|
-
@hex_file_path = "#{firmware_path}/#{
|
71
|
+
@hex_file_path = "#{firmware_path}/#{keyboard_kind}.hex"
|
74
72
|
`cd #{firmware_path.to_s} && make clean && make KEYMAP="default"`
|
75
73
|
read_hex_file
|
76
74
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: keyboard_reactor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sethherr
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-01-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|