depth_first 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 36db9ac3107a301dabd8cd7830ca4e5dcb53c6c0
4
- data.tar.gz: 0c00543726df7a9b38c29874cd302aef9d418217
3
+ metadata.gz: 004cfea664a99a0725fd1fa2ed8e5ea84d188134
4
+ data.tar.gz: d14d142ad110bfa78bbe138cd092c28980ce299b
5
5
  SHA512:
6
- metadata.gz: bf455fc67f46ac081cc424b4a7767582816b1865844ad1348dd0c0cf124241602ccb65ec8d829db420c1b9644aeda76498205f7eb65c1434658fb7dee7b4201d
7
- data.tar.gz: ac79656baa7ae96acb584943a6791ae0c9dc259095d3b006ed18bc8ea56a90f6db9e797e79d08085664d2bd237505eb79ab109bb5b90bb0b07f48cb00cf6b9cc
6
+ metadata.gz: ea304ac1ff3e9b53a1de672b23ed4164e7695fa892e6c7371c9a1ed78b1de671ea85a9c800ad3a6f1a4dc1b92f97c87c71adedf34667d0031ef10991084f5299
7
+ data.tar.gz: 74a90d9583919ac040b1e9b6c26e410dfad6f4bbc3c1ec13e2c7f16b7f0f9b8bfed2aeba8d46f5d695a678163d389cfc31c14a70fdf55eb3417f4cc4a95ce9e2
data/lib/depth_first.rb CHANGED
@@ -1,9 +1,7 @@
1
1
  require 'concurrent'
2
2
  require 'depth_first/task'
3
- require 'depth_first/parallel_aggregator'
4
- require 'depth_first/parallel_organizer'
5
- require 'depth_first/sequential_aggregator'
6
3
  require 'depth_first/sequential_organizer'
4
+ require 'depth_first/parallel_organizer'
7
5
  require 'depth_first/version'
8
6
 
9
7
  # Namespace
@@ -1,12 +1,9 @@
1
1
  module DepthFirst
2
2
  # Base parallel organizer class
3
- class ParallelOrganizer < Task
4
- TASKS = [].freeze
5
-
3
+ class ParallelOrganizer < SequentialOrganizer
6
4
  def perform
7
- self.class::TASKS
8
- .map { |task| execute_promise(task) }
9
- .reduce(options) { |a, e| resolve_promise(a, e) }
5
+ tasks.map { |task| execute_promise(task) }
6
+ .reduce(options) { |a, e| resolve_promise(a, e) }
10
7
  end
11
8
 
12
9
  private
@@ -4,9 +4,15 @@ module DepthFirst
4
4
  TASKS = [].freeze
5
5
 
6
6
  def perform
7
- self.class::TASKS.reduce(options) do |hsh, task|
7
+ tasks.reduce(options) do |hsh, task|
8
8
  hsh.merge(task.new(hsh).perform)
9
9
  end
10
10
  end
11
+
12
+ private
13
+
14
+ def tasks
15
+ self.class::TASKS
16
+ end
11
17
  end
12
18
  end
@@ -8,7 +8,7 @@ module DepthFirst
8
8
  end
9
9
 
10
10
  def perform
11
- options
11
+ {}
12
12
  end
13
13
  end
14
14
  end
@@ -1,3 +1,3 @@
1
1
  module DepthFirst
2
- VERSION = '0.0.5'.freeze
2
+ VERSION = '0.0.6'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: depth_first
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Isaac Anthony
@@ -48,9 +48,7 @@ files:
48
48
  - README.md
49
49
  - Rakefile
50
50
  - lib/depth_first.rb
51
- - lib/depth_first/parallel_aggregator.rb
52
51
  - lib/depth_first/parallel_organizer.rb
53
- - lib/depth_first/sequential_aggregator.rb
54
52
  - lib/depth_first/sequential_organizer.rb
55
53
  - lib/depth_first/task.rb
56
54
  - lib/depth_first/version.rb
@@ -1,24 +0,0 @@
1
- module DepthFirst
2
- # Base parallel aggregator class
3
- class ParallelAggregator < Task
4
- TASKS = [].freeze
5
- KEY = nil
6
-
7
- def perform
8
- key = self.class::KEY
9
- value = self.class::TASKS.map { |task| execute_promise(task) }
10
- .reduce([]) { |a, e| resolve_promise(a, e) }
11
- { key => value }
12
- end
13
-
14
- private
15
-
16
- def execute_promise(task)
17
- Concurrent::Promise.new { task.new(options).perform }.execute
18
- end
19
-
20
- def resolve_promise(arr, result)
21
- arr.push(result.value)
22
- end
23
- end
24
- end
@@ -1,13 +0,0 @@
1
- module DepthFirst
2
- # Base sequential aggregator class
3
- class SequentialAggregator < Task
4
- TASKS = [].freeze
5
- KEY = nil
6
-
7
- def perform
8
- key = self.class::KEY
9
- value = self.class::TASKS.map { |task| task.new(options).perform }
10
- { key => value }
11
- end
12
- end
13
- end