Sha256: bd85ef34ade0048b23fd9cbda5e78fd90321e064b30ea4efa06409a98e73cddb
Contents?: true
Size: 786 Bytes
Versions: 3
Compression:
Stored size: 786 Bytes
Contents
module Wombat class Iterator < PropertyContainer attr_accessor :selector def initialize(selector) @selector = selector super() end def parse raise ArgumentError.new('Must provide a block to locate property values') unless block_given? all_properties.each do |p| p.result ||= [] result = yield p if result result = p.callback ? p.callback.call(result) : result p.result << result end end end def flatten(depth = nil) # determine the iterator length by the biggest property array that we have length = all_properties.map(&:result).sort { |a| a.length }.last.size Array.new.tap do |a| length.times do |i| a << super(i) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
wombat-0.4.0 | lib/wombat/iterator.rb |
wombat-0.3.1 | lib/wombat/iterator.rb |
wombat-0.3.0 | lib/wombat/iterator.rb |