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
         |