def self.create_function_hash(function_call)
func_hash = {}
f = ""
func_parts = function_call.split(/(!=|>=|<=|<|>|=)/)
func_hash["r_compare"] = func_parts.pop
func_hash["operator"] = func_parts.pop
func = func_parts.join
if func.match(/^.+\(.*\)$/)
f = func
else
func_parts = func.split(".")
func_hash["value"] = func_parts.pop
f = func_parts.join(".")
end
if func_hash["r_compare"] =~ /^\/.*\/$/
func_hash["operator"] = "=~" if func_hash["operator"] == "="
func_hash["operator"] = "!=~" if func_hash["operator"] == "!="
func_hash["r_compare"] = Regexp.new(func_hash["r_compare"].gsub(/^\/|\/$/, ""))
elsif func_hash["operator"] == "="
func_hash["operator"] = "=="
end
func_hash["name"], func_hash["params"] = f.split("(")
if func_hash["params"] == ")"
func_hash["params"] = nil
else
func_hash["params"] = func_hash["params"].gsub(")", "")
func_quotes = func_hash["params"].split(/('|")/)
func_quotes.each_with_index do |item, i|
if item.match(/'|"/)
func_quotes.delete_at(i)
break
end
end
func_quotes.reverse.each_with_index do |item,i|
if item.match(/'|"/)
func_quotes.delete_at(func_quotes.size - i - 1)
break
end
end
func_hash["params"] = func_quotes.join
end
func_hash
end