Module: LightningcssRb::AST::Selectors

Defined in:
lib/lightningcss_rb/ast/selectors.rb,
lib/lightningcss_rb/ast/selectors/id.rb,
lib/lightningcss_rb/ast/selectors/base.rb,
lib/lightningcss_rb/ast/selectors/nesting.rb,
lib/lightningcss_rb/ast/selectors/attribute.rb,
lib/lightningcss_rb/ast/selectors/namespace.rb,
lib/lightningcss_rb/ast/selectors/universal.rb,
lib/lightningcss_rb/ast/selectors/combinator.rb,
lib/lightningcss_rb/ast/selectors/pseudo_class.rb,
lib/lightningcss_rb/ast/selectors/type_selector.rb,
lib/lightningcss_rb/ast/selectors/class_selector.rb,
lib/lightningcss_rb/ast/selectors/pseudo_element.rb

Defined Under Namespace

Classes: Attribute, Base, ClassSelector, Combinator, Id, Namespace, Nesting, PseudoClass, PseudoElement, TypeSelector, Universal

Constant Summary collapse

TYPE_MAP =
{
  "combinator" => Combinator,
  "universal" => Universal,
  "namespace" => Namespace,
  "type" => TypeSelector,
  "id" => Id,
  "class" => ClassSelector,
  "attribute" => Attribute,
  "pseudo-class" => PseudoClass,
  "pseudo-element" => PseudoElement,
  "nesting" => Nesting
}.freeze
UnknownNamespaceKind =
Class.new(UnknownError)

Class Method Summary collapse

Class Method Details

.from_ast(node) ⇒ Object



31
32
33
34
35
36
# File 'lib/lightningcss_rb/ast/selectors.rb', line 31

def self.from_ast(node)
  klass = TYPE_MAP[node[:type]]
  raise UnknownSelectorType.new("Unknown selector type: #{node[:type].inspect}", node) unless klass

  klass.from_ast(node)
end