tubes 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/tubes.rb +19 -3
  2. metadata +1 -1
data/lib/tubes.rb CHANGED
@@ -64,7 +64,7 @@ class Tube
64
64
  def invoke(klass, *args)
65
65
  @invocations += 1
66
66
 
67
- options = {:order => @order, :parent => @parent}
67
+ options = {:order => @order, :parent => self}
68
68
  segment = klass.new @dir, options
69
69
 
70
70
  step = segment.name
@@ -103,6 +103,8 @@ class Tube
103
103
 
104
104
  STDOUT.flush
105
105
  end
106
+
107
+ nil # Behave like Kernel.puts
106
108
  end
107
109
 
108
110
 
@@ -142,9 +144,23 @@ class Tube
142
144
  end
143
145
 
144
146
  def dispatch(segment, output_file, *args)
145
- output = if segment.method(:run).arity.abs > 0 # Optional arguments result in negative arity.
147
+ output = if segment.method(:run).arity > 0 # Optional arguments result in negative arity.
148
+ if args.empty?
149
+ if @invocations > 1
150
+ segment.send :run, @output
151
+ else
152
+ segment.send :run # This should raise an argument mismatch error.
153
+ end
154
+ else
155
+ segment.send :run, *args
156
+ end
157
+ elsif segment.method(:run).arity < 0
146
158
  if args.empty?
147
- segment.send :run, @output
159
+ if @invocations > 1
160
+ segment.send :run, @output
161
+ else
162
+ segment.send :run
163
+ end
148
164
  else
149
165
  segment.send :run, *args
150
166
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tubes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: