Module: LightningcssRb

Defined in:
lib/lightningcss_rb.rb,
lib/lightningcss_rb/ast.rb,
lib/lightningcss_rb/error.rb,
lib/lightningcss_rb/version.rb,
lib/lightningcss_rb/ast/selectors.rb,
lib/lightningcss_rb/unknown_error.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,
sig/lightningcss_rb.rbs

Overview

Ruby bindings for the LightningCSS parser, transformer, and minifier.

The native extension exposes the underlying LightningCSS AST as JSON; the methods here wrap those primitives with a friendlier Ruby interface.

Defined Under Namespace

Classes: AST, Error, UnknownError

Constant Summary collapse

VERSION =

Returns:

  • (String)
"0.0.1"

Class Method Summary collapse

Class Method Details

._parseString

Native primitives defined by the extension.

Parameters:

  • css (String)

Returns:

  • (String)


13
# File 'sig/lightningcss_rb.rbs', line 13

def self._parse: (String css) -> String

._to_cssString

Parameters:

  • ast_json (String)
  • minify (Boolean)

Returns:

  • (String)


14
# File 'sig/lightningcss_rb.rbs', line 14

def self._to_css: (String ast_json, bool minify) -> String

._transformString

Parameters:

  • css (String)
  • minify (Boolean)

Returns:

  • (String)


15
# File 'sig/lightningcss_rb.rbs', line 15

def self._transform: (String css, bool minify) -> String

.minify(css) ⇒ String

Parse, optimize, and minify CSS. Shorthand for transform(css, minify: true).

Parameters:

  • css (String)

    the CSS source

Returns:

  • (String)

    the minified CSS

Raises:



62
63
64
# File 'lib/lightningcss_rb.rb', line 62

def minify(css)
  _transform(css, true)
end

.parse(css) ⇒ Hash

Parse CSS into the LightningCSS AST as a Ruby Hash (with symbol keys).

Parameters:

  • css (String)

    the CSS source to parse

Returns:

  • (Hash)

    the parsed stylesheet AST

Raises:



32
33
34
# File 'lib/lightningcss_rb.rb', line 32

def parse(css)
  JSON.parse(_parse(css), symbolize_names: true)
end

.to_css(ast, minify: false) ⇒ String

Serialize an AST (as returned by parse) back to CSS.

Parameters:

  • ast (Hash, String)

    an AST Hash from parse, or a raw AST JSON String

  • minify (Boolean) (defaults to: false)

    remove whitespace and shorten the output

  • minify: (Boolean) (defaults to: false)

Returns:

  • (String)

    the serialized CSS

Raises:



42
43
44
45
# File 'lib/lightningcss_rb.rb', line 42

def to_css(ast, minify: false)
  json = ast.is_a?(String) ? ast : JSON.generate(ast)
  _to_css(json, minify)
end

.transform(css, minify: true) ⇒ String

Parse, optimize, and re-print CSS in one step.

Parameters:

  • css (String)

    the CSS source

  • minify (Boolean) (defaults to: true)

    remove whitespace and shorten the output

  • minify: (Boolean) (defaults to: true)

Returns:

  • (String)

    the transformed CSS

Raises:



53
54
55
# File 'lib/lightningcss_rb.rb', line 53

def transform(css, minify: true)
  _transform(css, minify)
end