Categories: None [Edit]

deferred_enum

https://rubygems.org/gems/deferred_enum
https://github.com/take-five/deferred_enum
== Synopsys Ruby Enumerable extension. Main idea is lazy computations within enumerators. == Usage Install as a gem: sudo gem install deferred_enum This gem introduces DeferredEnumerator class: ary = [1, 2, 3, 4] deferred = ary.defer # # DeferredEnumerator brings some optimizations to all?, any? and none? predicates deferred.all?(&:even?) # Will stop iteration after first false-result = 1 iteration deferred.none?(&:even?) # 2 iterations deferred.any?(&:even?) # 2 iterations It also introduces lazy versions of Enumerable's #select, #map and #reject methods deferred.map { |i| i + 1 } # #:each> deferred.select { |i| i.even? } # #:each> deferred.reject { |i| i.odd? } # #:each> So you can safely chain your filters, they won't be treated as arrays: deferred.map(&:succ).select(&:even?) # #:each> You can build chains of Enumerables: deferred.concat([2]).to_a # [1, 2, 3, 4, 2] Or append elements to the end of enumerator: deferred << 2 You can even remove duplicates from enumerator, though this operation can be tough: deferred.uniq # #:each> There are many other methods in DeferredEnumerator, please refer to documentation.

Total

Ranking: 88,640 of 180,643
Downloads: 8,348

Daily

Ranking: 141,617 of 180,629
Downloads: 0

Depended by

RankDownloadsName

Depends on

RankDownloadsName
24771,261,281rspec

Owners

#GravatarHandle
1iconamikhailov