Sha256: 8f586929911a8324314ff727eacf92adfcb681456ca47d119d229dfdf4c6726b
Contents?: true
Size: 1.52 KB
Versions: 2
Compression:
Stored size: 1.52 KB
Contents
module SCSSLint # Collection of helpers used across a variety of linters. module Utils # Given a selector array which is a list of strings with Sass::Script::Nodes # interspersed within them, return an array of strings representing those # selectors with the Sass::Script::Nodes removed (i.e., ignoring # interpolation). For example: # # .selector-one, .selector-#{$var}-two # # becomes: # # .selector-one, .selector--two # # This is useful for lints that wish to ignore interpolation, since # interpolation can't be resolved at this step. def extract_string_selectors(selector_array) selector_array.reject { |item| item.is_a? Sass::Script::Node } .join .split end # Takes a string like `hello "world" 'how are' you` and turns it into: # `hello you`. # This is useful for scanning for keywords in shorthand properties or lists # which can contain quoted strings but for which you don't want to inspect # quoted strings (e.g. you care about the actual color keyword `red`, not # the string "red"). def remove_quoted_strings(string) string.gsub(/"[^"]*"|'[^']*'/, '') end def previous_node(node) return unless node && parent = node.node_parent index = parent.children.index(node) if index == 0 parent else parent.children[index - 1] end end def pluralize(value, word) value == 1 ? "#{value} #{word}" : "#{value} #{word}s" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
scss-lint-0.24.1 | lib/scss_lint/utils.rb |
scss-lint-0.24.0 | lib/scss_lint/utils.rb |