class Enumerator
open core class
Public Instance Methods
last?()
click to toggle source
Returns whether the enumerator is last.
e = [1,2].to_enum e.last? # => false e.next # => 1 e.last? # => false e.next # => 2 e.last? # => true
# File lib/with_last/core_ext.rb, line 35 def last? peek false rescue StopIteration => _e true end
with_last() { |*args, last?| ... }
click to toggle source
Iterates with whether the item is the last item.
[1,2].each.with_last { |item, is_last| puts [item, is_last] } # => [1, false] [2, true] [1,2].map.with_last { |item, is_last| "#{item}#{is_last ? '.' : ', '}" }.join # => "1, 2." %w[hoge fuga].map.with_index.with_last { |item, index, is_last| "#{index}: #{item}#{is_last ? '.' : ', '}" }.join # => "0:hoge, 1:fuga."
# File lib/with_last/core_ext.rb, line 17 def with_last return to_enum :with_last unless block_given? each do |*args| self.next yield(*args, last?) end end