Sha256: 26668686b3654250bca1a5370d8fdf1a13e3fa567f49dc9c08e6684b9e4f727d
Contents?: true
Size: 1.01 KB
Versions: 7
Compression:
Stored size: 1.01 KB
Contents
module Cascadence module ClassMethods # Yes, I realize this is confusing # I'm sorry for code-gulfing # TODO: Write this class so we don't depend so heavily # on recusion and "lazy evaluation" to get the ordering. # This is probably 100% necessary if this project were # ever to get big and require junk def cascadence_order @cascadence_order ||= [] @forked_position ||= [] @merge_position ||= [] unless @cascadence_order.nil? Helper.generate_tributary(@cascadence_order.reverse, @forked_position.clone, @merge_position.clone) end end def cascading_order( *order ) @cascadence_order ||= [] @cascadence_order << order end def fork_after( location ) @forked_position ||= [] index = cascadence_order.index location @forked_position << (index + 1) end def merge_before( location ) @merge_position ||= [] index = cascadence_order.index location @merge_position << (index - 1) end end end
Version data entries
7 entries across 7 versions & 1 rubygems