Method: Sass::Script::Value::Helpers#parse_selector

Defined in:
lib/sass/script/value/helpers.rb

#parse_selector(value, name = nil, allow_parent_ref = false) ⇒ Sass::Selector::CommaSequence

Parses a user-provided selector.

Parameters:

  • value (Sass::Script::Value::String, Sass::Script::Value::List)

    The selector to parse. This can be either a string, a list of strings, or a list of lists of strings as returned by &.

  • name (Symbol, nil) (defaults to: nil)

    If provided, the name of the selector argument. This is used for error reporting.

  • allow_parent_ref (Boolean) (defaults to: false)

    Whether the parsed selector should allow parent references.

Returns:

Since:

  • 3.3.0

[View source]

145
146
147
148
149
150
151
152
153
154
# File 'lib/sass/script/value/helpers.rb', line 145

def parse_selector(value, name = nil, allow_parent_ref = false)
  str = normalize_selector(value, name)
  begin
    Sass::SCSS::StaticParser.new(str, nil, nil, 1, 1, allow_parent_ref).parse_selector
  rescue Sass::SyntaxError => e
    err = "#{value.inspect} is not a valid selector: #{e}"
    err = "$#{name.to_s.tr('_', '-')}: #{err}" if name
    raise ArgumentError.new(err)
  end
end