class Sass::Selector::Sequence
def weave(path)
-
(Array
- A list of fully-expanded selectors.>)
Parameters:
-
path
(Array
) -->
def weave(path) # This function works by moving through the selector path left-to-right, # building all possible prefixes simultaneously. prefixes = [[]] path.each do |current| next if current.empty? current = current.dup last_current = [current.pop] prefixes = prefixes.map do |prefix| sub = subweave(prefix, current) next [] unless sub sub.map {|seqs| seqs + last_current} end.flatten(1) end prefixes end