Method: JsonPath#normalize

Defined in:
lib/json_path.rb

#normalize(expr) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/json_path.rb', line 25

def normalize(expr)
  subx = [];
  
  ex = expr.gsub(/[\['](\??\(.*?\))[\]']/){ |x| subx << $1; "[##{subx.size - 1}]"}
  ex = ex.gsub(/'?\.'?|\['?/, ";")
  ex = ex.gsub(/;;;|;;/, ";..;")
  ex = ex.gsub(/;$|'?\]|'$/, "")
  ex = ex.gsub(/#([0-9]+)/){ |x| subx[$1.to_i]}

  ex
end