Module: CSS::Native

Defined in:
lib/css/native.rb,
lib/css/native.rb

Defined Under Namespace

Classes: Cascade, Snapshot

Class Method Summary collapse

Class Method Details

.compile_or_nil(ast) ⇒ Object



61
62
63
64
65
# File 'lib/css/native.rb', line 61

def compile_or_nil(ast)
  Selector.compile(ast)
rescue Unsupported
  nil
end

.matches?(element, selector, snapshot: nil, document: nil, state: nil) ⇒ Boolean

Returns:

  • (Boolean)


50
51
52
53
54
55
56
57
58
59
# File 'lib/css/native.rb', line 50

def matches?(element, selector, snapshot: nil, document: nil, state: nil)
  ast      = selector.is_a?(String) ? CSS.parse_selector_list(selector) : selector
  compiled = compile_or_nil(ast)
  snap     = snapshot || snapshot_for(document || element.document)

  return CSS.matches?(element, ast, state: state) unless compiled

  native_state = state.nil? ? nil : (state.is_a?(State) ? state : snap.compile_state(state))
  snap.matches?(element, compiled, native_state)
end