datapipes 0.1.1 → 0.1.2
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/CHANGELOG.md +3 -0
- data/README.md +14 -13
- data/datapipes.gemspec +1 -0
- data/lib/datapipes/sink.rb +4 -1
- data/lib/datapipes/version.rb +1 -1
- data/lib/datapipes.rb +1 -0
- metadata +15 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: ffc7cfd9159486b30bc40027879b31fcf40ab87c
         | 
| 4 | 
            +
              data.tar.gz: cf48ec612f2c42485caaee94d9699d1f5e55154d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: ccbbdcce3c53b5d31299a04416cd17949288e811c2cf5a6b86207af8f2e66ef4fec3e9695099aa280db55d68533a9a64400e3371a40fefca9af58fc6a0650174
         | 
| 7 | 
            +
              data.tar.gz: 1743f71987fdbc62052204ebb5ce7868330fd41893752858f13ec313a3af148ddbbd8b69cab1bc6e0eab53c7f5c3684432db2f6e45501635a929bc08c55669f5
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -25,24 +25,22 @@ To handle multi streamings, datapipes offers composabiliy. Source, Tube and Sink | |
| 25 25 | 
             
            are composable individually. So the diagram above will be:
         | 
| 26 26 |  | 
| 27 27 | 
             
            ```
         | 
| 28 | 
            -
             Composed Source works  | 
| 28 | 
            +
             Composed Source works concurrently.
         | 
| 29 29 |  | 
| 30 30 | 
             
              [Source Source Source]
         | 
| 31 31 | 
             
                        |
         | 
| 32 | 
            -
                        |  pipe handles asynchronous
         | 
| 32 | 
            +
                        |  pipe handles asynchronous.
         | 
| 33 33 | 
             
                        |
         | 
| 34 34 | 
             
                       Tube
         | 
| 35 | 
            -
                       Tube  Composed Tube has individual tube in series
         | 
| 35 | 
            +
                       Tube  Composed Tube has individual tube in series.
         | 
| 36 36 | 
             
                       Tube
         | 
| 37 37 | 
             
                       Tube
         | 
| 38 38 | 
             
                        |
         | 
| 39 39 | 
             
                        |
         | 
| 40 40 | 
             
                        |
         | 
| 41 | 
            -
             | 
| 42 | 
            -
                       Sink
         | 
| 43 | 
            -
                       Sink
         | 
| 41 | 
            +
                 [Sink Sink Sink]
         | 
| 44 42 |  | 
| 45 | 
            -
             Composed Sink works  | 
| 43 | 
            +
             Composed Sink works concurrently.
         | 
| 46 44 | 
             
            ```
         | 
| 47 45 |  | 
| 48 46 | 
             
            ## Installation
         | 
| @@ -81,7 +79,11 @@ Define `accept?` to recieve the data or skip this. | |
| 81 79 | 
             
            ```ruby
         | 
| 82 80 | 
             
            class Triple < Datapipes::Tube
         | 
| 83 81 | 
             
              def run(data)
         | 
| 84 | 
            -
                 | 
| 82 | 
            +
                if accept? data
         | 
| 83 | 
            +
                  [data, data, data]
         | 
| 84 | 
            +
                else
         | 
| 85 | 
            +
                  data
         | 
| 86 | 
            +
                end
         | 
| 85 87 | 
             
              end
         | 
| 86 88 |  | 
| 87 89 | 
             
              def accept?(data)
         | 
| @@ -95,7 +97,7 @@ Sink consumes piped data. A typical sink is printing data. | |
| 95 97 | 
             
            ```ruby
         | 
| 96 98 | 
             
            class Print < Datapipes::Sink
         | 
| 97 99 | 
             
              def run(data)
         | 
| 98 | 
            -
                puts data
         | 
| 100 | 
            +
                puts data if accept? data
         | 
| 99 101 | 
             
              end
         | 
| 100 102 |  | 
| 101 103 | 
             
              def accept?(data)
         | 
| @@ -108,10 +110,9 @@ You can make your own datapipe with your objects. | |
| 108 110 |  | 
| 109 111 | 
             
            ```ruby
         | 
| 110 112 | 
             
            datapipe = Datapipes.new(
         | 
| 111 | 
            -
              List.new, | 
| 112 | 
            -
               | 
| 113 | 
            -
               | 
| 114 | 
            -
              Datapipes::Pipe.new # A pipe
         | 
| 113 | 
            +
              List.new,        # A source
         | 
| 114 | 
            +
              Print.new,       # A sink
         | 
| 115 | 
            +
              tube: Triple.new,
         | 
| 115 116 | 
             
            )
         | 
| 116 117 | 
             
            ```
         | 
| 117 118 |  | 
    
        data/datapipes.gemspec
    CHANGED
    
    | @@ -18,6 +18,7 @@ Gem::Specification.new do |spec| | |
| 18 18 | 
             
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         | 
| 19 19 | 
             
              spec.require_paths = ['lib']
         | 
| 20 20 |  | 
| 21 | 
            +
              spec.add_dependency 'parallel', '~> 1.0'
         | 
| 21 22 | 
             
              spec.add_development_dependency 'bundler', '~> 1.5'
         | 
| 22 23 | 
             
              spec.add_development_dependency 'rake'
         | 
| 23 24 | 
             
              spec.add_development_dependency 'rspec'
         | 
    
        data/lib/datapipes/sink.rb
    CHANGED
    
    | @@ -6,7 +6,10 @@ class Datapipes | |
| 6 6 | 
             
                # TODO: parallel
         | 
| 7 7 | 
             
                def run_all(data)
         | 
| 8 8 | 
             
                  @accumulated ||= [self]
         | 
| 9 | 
            -
                   | 
| 9 | 
            +
                  count = Parallel.processor_count
         | 
| 10 | 
            +
                  Parallel.each(@accumulated, in_threads: count) do |sink|
         | 
| 11 | 
            +
                    sink.run(data)
         | 
| 12 | 
            +
                  end
         | 
| 10 13 | 
             
                end
         | 
| 11 14 | 
             
              end
         | 
| 12 15 | 
             
            end
         | 
    
        data/lib/datapipes/version.rb
    CHANGED
    
    
    
        data/lib/datapipes.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: datapipes
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Taiki ONO
         | 
| @@ -10,6 +10,20 @@ bindir: bin | |
| 10 10 | 
             
            cert_chain: []
         | 
| 11 11 | 
             
            date: 2014-05-05 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: parallel
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - "~>"
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '1.0'
         | 
| 20 | 
            +
              type: :runtime
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - "~>"
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '1.0'
         | 
| 13 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 28 | 
             
              name: bundler
         | 
| 15 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         |