Method: MarkdownLint::Doc#find_type_elements_except
- Defined in:
- lib/mdl/doc.rb
#find_type_elements_except(type, nested_except = [], elements = @elements) ⇒ Object
A variation on find_type_elements that allows you to skip drilling down into children of specific element types.
Instead of a single type, a list of types can be provided instead to find all types.
Unlike find_type_elements, this method will always search for nested elements, and skip the element types given to nested_except.
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/mdl/doc.rb', line 110 def find_type_elements_except(type, nested_except=[], elements=@elements) results = [] if type.class == Symbol type = [type] end if nested_except.class == Symbol nested_except = [nested_except] end elements.each do |e| results.push(e) if type.include?(e.type) unless nested_except.include?(e.type) or e.children.empty? results.concat(find_type_elements_except(type, nested_except, e.children)) end end results end |