Sha256: 7c4b52fdc66a7ba30d23321835ab7f5afd44a36a30e0fe278c7af8cacbe903a1
Contents?: true
Size: 762 Bytes
Versions: 6
Compression:
Stored size: 762 Bytes
Contents
module Hydra::PCDM ## # Iterates over a record's members and all of their members in a breadth-first # search. class DeepMemberIterator include Enumerable attr_reader :record # @param [#members] record The object whose members are iterated across. def initialize(record) @record = HasMembers.new(record) end def each record.members.each do |member| yield member end record.members.each do |member| DeepMemberIterator.new(member).each do |deep_member| yield deep_member end end end end ## # Small decorator to ensure that #members isn't undefined. class HasMembers < SimpleDelegator def members __getobj__.try(:members) || [] end end end
Version data entries
6 entries across 6 versions & 1 rubygems