Sha256: b92a649cc98da173993471aa7f0e43ce9db6fb0fae12f5e3b413e67e7b104f71
Contents?: true
Size: 790 Bytes
Versions: 33
Compression:
Stored size: 790 Bytes
Contents
module Capybara class Selector class CSS def self.escape(str) out = String.new("") value = str.dup out << value.slice!(0...1) if value =~ /^[-_]/ out << if value[0] =~ NMSTART value.slice!(0...1) else escape_char(value.slice!(0...1)) end out << value.gsub(/[^a-zA-Z0-9_-]/) {|c| escape_char c} out end def self.escape_char(c) return "\\%06x" % c.ord() unless c =~ %r{[ -/:-~]} "\\#{c}" end S = '\u{80}-\u{D7FF}\u{E000}-\u{FFFD}\u{10000}-\u{10FFFF}' H = /[0-9a-fA-F]/ UNICODE = /\\#{H}{1,6}[ \t\r\n\f]?/ NONASCII = /[#{S}]/ ESCAPE = /#{UNICODE}|\\[ -~#{S}]/ NMSTART = /[_a-zA-Z]|#{NONASCII}|#{ESCAPE}/ end end end
Version data entries
33 entries across 29 versions & 3 rubygems