Sha256: 7d557224ef255735a6914b73cff87ac74067b8d1a72914f729d57b23f368b643
Contents?: true
Size: 1.6 KB
Versions: 2
Compression:
Stored size: 1.6 KB
Contents
module DataMapper class DescendantSet include Enumerable # Initialize a DescendantSet instance # # @param [#to_ary] descendants # initialize with the descendants # # @return [undefined] # # @api private def initialize(descendants = []) @descendants = descendants.to_ary end # Copy a DescendantSet instance # # @param [DescendantSet] original # the original descendants # # @return [undefined] # # @api private def initialize_copy(original) @descendants = @descendants.dup end # Add a descendant # # @param [Module] descendant # # @return [DescendantSet] # self # # @api private def <<(descendant) @descendants << descendant self end # Remove a descendant # # Also removes from all descendants # # @param [Module] descendant # # @return [DescendantSet] # self # # @api private def delete(descendant) @descendants.delete(descendant) each { |d| d.descendants.delete(descendant) } end # Iterate over each descendant # # @yield [descendant] # @yieldparam [Module] descendant # # @return [DescendantSet] # self # # @api private def each @descendants.each do |descendant| yield descendant descendant.descendants.each { |dd| yield dd } end self end # Test if there are any descendants # # @return [Boolean] # # @api private def empty? @descendants.empty? end end # class DescendantSet end # module DataMapper
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dm-core-1.0.2 | lib/dm-core/support/descendant_set.rb |
dm-core-1.0.1 | lib/dm-core/support/descendant_set.rb |