patch 0.4.14 → 0.4.15
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.
- checksums.yaml +4 -4
- data/README.md +4 -3
- data/lib/patch/node/map.rb +1 -0
- data/lib/patch/patch.rb +13 -0
- data/lib/patch.rb +1 -1
- data/test/config/patches.yml +6 -2
- data/test/node/map_test.rb +7 -2
- data/test/patch_test.rb +19 -0
- 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: 89ece74ab2dba3ae14594532a505c35eab007f30
|
4
|
+
data.tar.gz: 218c8db751291d328f42156c6ad672902f84fb0c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b62a32cf912eae5e4eb1938eb2c8048fa73f0e7efe93312fdac660343d6085746398023a3214641080d3011efef099c2ae2027af13954492ddba2120fbd0225
|
7
|
+
data.tar.gz: af71587809704451cc2f6c89163007ed4234ae7742174f787c6cb324b4ebd4f60a56e68d3dd342e01240001892d185e3d173b1364aad670b3b2dad34de14064f
|
data/README.md
CHANGED
@@ -14,7 +14,7 @@ Other possibilities:
|
|
14
14
|
* HTTP
|
15
15
|
* [JSON RPC 2.0](http://en.wikipedia.org/wiki/JSON-RPC)
|
16
16
|
|
17
|
-
Patch
|
17
|
+
Patch receives messages in these formats and instantly translates and sends them to others
|
18
18
|
|
19
19
|
For example:
|
20
20
|
|
@@ -46,7 +46,7 @@ require "patch"
|
|
46
46
|
A *node* is a single source and/or destination of control messages. Here, we define three nodes:
|
47
47
|
|
48
48
|
```ruby
|
49
|
-
websocket = Patch::IO::Websocket.new(1, "localhost", 9006)
|
49
|
+
websocket = Patch::IO::Websocket::Node.new(1, "localhost", 9006)
|
50
50
|
|
51
51
|
midi = Patch::IO::MIDI::Input.new(2, "Apple Inc. IAC Driver")
|
52
52
|
|
@@ -168,5 +168,6 @@ You can run Patch at the command line by executing `patchrb nodes.yml patches.ym
|
|
168
168
|
|
169
169
|
## License
|
170
170
|
|
171
|
-
|
171
|
+
Apache 2.0, See the file LICENSE
|
172
|
+
|
172
173
|
Copyright (c) 2014-2015 [Ari Russo](http://arirusso.com)
|
data/lib/patch/node/map.rb
CHANGED
@@ -32,6 +32,7 @@ module Patch
|
|
32
32
|
# @return [Boolean] Whether nodes were enabled
|
33
33
|
def enable(patch)
|
34
34
|
result = @to.map do |to_node|
|
35
|
+
to_node.puts(patch, patch.default_messages)
|
35
36
|
enabled = @from.map do |from_node|
|
36
37
|
from_node.listen(patch) do |messages|
|
37
38
|
to_node.puts(patch, messages)
|
data/lib/patch/patch.rb
CHANGED
@@ -13,6 +13,19 @@ module Patch
|
|
13
13
|
populate(maps, actions)
|
14
14
|
end
|
15
15
|
|
16
|
+
# Patch messages for the default values in the patch
|
17
|
+
# @return [Array<Patch::Message>]
|
18
|
+
def default_messages
|
19
|
+
actions_with_default = @actions.select do |action|
|
20
|
+
!action[:default][:value].nil?
|
21
|
+
end
|
22
|
+
actions_with_default.map do |action|
|
23
|
+
value = action[:default][:value]
|
24
|
+
index = @actions.index(action)
|
25
|
+
Message.new(:index => index, :patch_name => @name, :value => value)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
16
29
|
# Enable the given nodes to implement this patch
|
17
30
|
# @param [Node::Container] nodes
|
18
31
|
# @return [Boolean]
|
data/lib/patch.rb
CHANGED
data/test/config/patches.yml
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
:key: zoom
|
8
8
|
:default:
|
9
9
|
:scale: !ruby/range 0.1..5.0
|
10
|
+
:value: 1
|
10
11
|
:midi:
|
11
12
|
:channel: 0
|
12
13
|
:index: 0
|
@@ -18,6 +19,7 @@
|
|
18
19
|
:key: contrast
|
19
20
|
:default:
|
20
21
|
:scale: !ruby/range 0..5.0
|
22
|
+
:value: 0.5
|
21
23
|
:osc:
|
22
24
|
:address: /1/rotaryD
|
23
25
|
:scale: !ruby/range 0..1.0
|
@@ -26,16 +28,18 @@
|
|
26
28
|
:key: saturation
|
27
29
|
:default:
|
28
30
|
:scale: !ruby/range 0..2.0
|
31
|
+
:value: 1
|
29
32
|
:osc:
|
30
33
|
:address: /faderM
|
31
|
-
:scale:
|
34
|
+
:scale:
|
32
35
|
:osc: !ruby/range 0..1.0
|
33
36
|
|
34
37
|
- :name: Z Depth
|
35
38
|
:key: zDepth
|
36
39
|
:default:
|
37
40
|
:scale: !ruby/range 0..1000
|
41
|
+
:value: 200
|
38
42
|
:osc:
|
39
43
|
:address: /1/faderA
|
40
|
-
:scale:
|
44
|
+
:scale:
|
41
45
|
:osc: !ruby/range 0..1.0
|
data/test/node/map_test.rb
CHANGED
@@ -29,18 +29,23 @@ class Patch::Node::MapTest < Minitest::Test
|
|
29
29
|
context "#enable" do
|
30
30
|
|
31
31
|
setup do
|
32
|
-
@
|
32
|
+
@patch = @patches.first
|
33
|
+
@maps = @patch.maps
|
33
34
|
refute_empty @nodes
|
34
35
|
assert [Patch::IO::MIDI::Input, Patch::IO::OSC::Server, Patch::IO::Websocket::Node].all? { |klass| @nodes.map(&:class).include?(klass) }
|
35
36
|
::Patch::Thread.expects(:new).times(@nodes.count)
|
37
|
+
@maps.each do |map|
|
38
|
+
map.to.expects(:puts).at_least_once.with(@patch, @patch.default_messages)
|
39
|
+
end
|
36
40
|
end
|
37
41
|
|
38
42
|
teardown do
|
39
43
|
::Patch::Thread.unstub(:new)
|
44
|
+
@maps.each { |map| map.to.unstub(:puts) }
|
40
45
|
end
|
41
46
|
|
42
47
|
should "create node start threads" do
|
43
|
-
assert @maps.first.enable(@
|
48
|
+
assert @maps.first.enable(@patch)
|
44
49
|
end
|
45
50
|
|
46
51
|
end
|
data/test/patch_test.rb
CHANGED
@@ -32,6 +32,25 @@ class Patch::PatchTest < Minitest::Test
|
|
32
32
|
|
33
33
|
end
|
34
34
|
|
35
|
+
context "#default_messages" do
|
36
|
+
|
37
|
+
setup do
|
38
|
+
@patch = @patches.first
|
39
|
+
@messages = @patch.default_messages
|
40
|
+
@actions_with_default = @patch.actions.select { |action| !action[:default].nil? }
|
41
|
+
end
|
42
|
+
|
43
|
+
should "populate messages from defaults" do
|
44
|
+
refute_nil @messages
|
45
|
+
refute_empty @messages
|
46
|
+
assert_equal @actions_with_default.count, @messages.count
|
47
|
+
@actions_with_default.each_with_index do |action, i|
|
48
|
+
refute_nil @messages.find { |message| message.index == i }
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
35
54
|
context "#enable" do
|
36
55
|
|
37
56
|
setup do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: patch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ari Russo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|