Class: Prawn::SVG::CSS::SelectorParser
- Inherits:
-
Object
- Object
- Prawn::SVG::CSS::SelectorParser
- Defined in:
- lib/prawn/svg/css/selector_parser.rb
Defined Under Namespace
Classes: Attribute, Combinator, Identifier, Modifier
Class Method Summary collapse
Class Method Details
.parse(selector) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/prawn/svg/css/selector_parser.rb', line 3 def self.parse(selector) tokens = tokenise_css_selector(selector) or return result = [{}] part = nil tokens.each do |token| case token when Modifier part = token.type result.last[part] ||= part == :name ? +"" : [] when Identifier return unless part result.last[part] << token.name when Attribute return unless ["=", "*=", "~=", "^=", "|=", "$=", nil].include?(token.operator) (result.last[:attribute] ||= []) << [token.key, token.operator, token.value] when Combinator result << {combinator: token.type} part = nil end end result end |