Class: Capybara::Selector::CSS::Splitter

Inherits:
Object
  • Object
show all
Defined in:
lib/capybara/selector/css.rb

Instance Method Summary collapse

Instance Method Details

#split(css) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/capybara/selector/css.rb', line 31

def split(css)
  selectors = []
  StringIO.open(css) do |str|
    selector = ""
    while (c = str.getc)
      case c
      when '['
        selector += parse_square(str)
      when '('
        selector += parse_paren(str)
      when '"', "'"
        selector += parse_string(c, str)
      when '\\'
        selector += c + str.getc
      when ','
        selectors << selector.strip
        selector = ""
      else
        selector += c
      end
    end
    selectors << selector.strip
  end
  selectors
end