Skip to content

Commit ed483ce

Browse files
committedSep 16, 2014
Add a maximum depth parameter to Promise#trace
1 parent 78b4fb9 commit ed483ce

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed
 

‎stdlib/promise.rb

+12-4
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,8 @@ def always(&block)
174174
alias finally always
175175
alias ensure always
176176

177-
def trace(&block)
178-
self ^ Trace.new(block)
177+
def trace(depth = nil, &block)
178+
self ^ Trace.new(depth, block)
179179
end
180180

181181
def inspect
@@ -209,9 +209,17 @@ def self.it(promise)
209209
end
210210
end
211211

212-
def initialize(block)
212+
def initialize(depth, block)
213+
@depth = depth
214+
213215
super -> {
214-
block.call(*Trace.it(self).reverse)
216+
trace = Trace.it(self).reverse
217+
218+
if depth && depth <= trace.length
219+
trace.shift(trace.length - depth)
220+
end
221+
222+
block.call(*trace)
215223
}
216224
end
217225
end

0 commit comments

Comments
 (0)
Please sign in to comment.