stages 0.2.3 → 0.2.4

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.3
1
+ 0.2.4
@@ -38,7 +38,7 @@ def setup_pipeline
38
38
 
39
39
  each_character = Each.new{ |x| x.chars }
40
40
  trim_whitespace = Select.new{ |x| x != ' '}
41
- letters_in_each_line = Wrap.new(get_lyric | each_character | trim_whitespace)
41
+ letters_in_each_line = Wrap.new(get_lyric | each_character | trim_whitespace, :array)
42
42
  each_letter = Each.new
43
43
  each_note = Generator.new(@lyrics.keys)
44
44
  count_everything = Count.new
@@ -31,7 +31,7 @@ puts setup_pipeline.run.inspect
31
31
 
32
32
  puts "one line at a time"
33
33
  lyrics = Each.new(@lyrics.keys)
34
- letters_in_chunks = Wrap.new(Map.new{ |x| @lyrics[x]} | Each.new{ |x| x.chars}).with_hash
34
+ letters_in_chunks = Wrap.new(Map.new{ |x| @lyrics[x]} | Each.new{ |x| x.chars})
35
35
  each_letter = Each.new{ |x| x.values.first }
36
36
  count = Count.new
37
37
 
data/lib/stages/wrap.rb CHANGED
@@ -1,27 +1,19 @@
1
1
  module Stages
2
2
  class Wrap < Stage
3
- def initialize(pipeline)
3
+ def initialize(pipeline, *args)
4
4
  @pipeline = pipeline
5
5
  @output_style = :hash
6
- @aggregated = false
6
+ unless args.empty?
7
+ if args.include? :array
8
+ @output_style = :array
9
+ elsif args.include? :each
10
+ @output_style = :each
11
+ end
12
+ @aggregated = true if args.include? :aggregated
13
+ end
7
14
  super()
8
15
  end
9
-
10
- def array
11
- @output_style = :array
12
- self
13
- end
14
-
15
- def each
16
- @output_style = :each
17
- self
18
- end
19
-
20
- def aggregated
21
- @aggregated = true
22
- self
23
- end
24
-
16
+
25
17
  def process
26
18
  while value = input
27
19
  subpipe = Emit.new(value) | @pipeline
data/stages.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "stages"
8
- s.version = "0.2.3"
8
+ s.version = "0.2.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["The Justice Eight"]
data/test/test_stages.rb CHANGED
@@ -78,7 +78,7 @@ class TestStages < MiniTest::Unit::TestCase
78
78
  end
79
79
 
80
80
  test 'hash/aggregated wrap mode wrap' do
81
- pipeline = Each.new(%w(foo bar)) | Wrap.new(Each.new{ |x| x.chars} | Count.new).aggregated
81
+ pipeline = Each.new(%w(foo bar)) | Wrap.new(Each.new{ |x| x.chars} | Count.new, :aggregated)
82
82
  result = pipeline.run
83
83
  assert_equal(2, result['foo']['o'])
84
84
  result = pipeline.run
@@ -87,7 +87,7 @@ class TestStages < MiniTest::Unit::TestCase
87
87
 
88
88
 
89
89
  test 'array mode wrap' do
90
- pipeline = Each.new(%w(foo bar)) | Wrap.new(Each.new{ |x| x.chars}).array
90
+ pipeline = Each.new(%w(foo bar)) | Wrap.new(Each.new{ |x| x.chars}, :array)
91
91
  result = pipeline.run
92
92
  assert_equal(%w(f o o), result)
93
93
  result = pipeline.run
@@ -95,7 +95,7 @@ class TestStages < MiniTest::Unit::TestCase
95
95
  end
96
96
 
97
97
  test 'each mode wrap' do
98
- pipeline = Each.new(%w(foo bar)) | Wrap.new(Each.new{ |x| x.chars}).each
98
+ pipeline = Each.new(%w(foo bar)) | Wrap.new(Each.new{ |x| x.chars}, :each)
99
99
  expected = %w(r a b o o f)
100
100
  while r = pipeline.run
101
101
  assert_equal(expected.pop, r)
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: stages
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.3
5
+ version: 0.2.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - The Justice Eight
@@ -70,7 +70,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
70
70
  requirements:
71
71
  - - ">="
72
72
  - !ruby/object:Gem::Version
73
- hash: 1416732163094176544
73
+ hash: 940714069352004572
74
74
  segments:
75
75
  - 0
76
76
  version: "0"