######## ####### ######## ####### ######## ######## ## / / / / License \ \ \ \ ## Copyleft culture, Copyright (C) is prohibited here ## This work is licensed under a CC BY-SA 4.0 ## Creative Commons Attribution-ShareAlike 4.0 License ## Refer to the http://creativecommons.org/licenses/by-sa/4.0/ ######## ####### ######## ####### ######## ######## ## / / / / Code Climate \ \ \ \ ## Language = ruby ## Indent = space; 4 chars; ######## ####### ######## ####### ######## ######## module ArchestryLookup module Sql class << self def sqlQuery(state, sql) # p "##SQL:: #{sql}" res = {} case state[:dbtype] when :sqlite res = sqliteAnswerMap(state[:db][:handler].execute2(sql)) when :pg res = pgAnswerMap(state[:db][:handler].exec(sql)) end # p "## SQL_RES:: #{res}" res end def sqliteAnswerMap(answer) res = {} m = {} n = 0 j = 0 answer.each do |result| if n == 0 # puts "##keys::#{result}" i = 0 result.each do |v| m[i] = v.to_sym i += 1 end else # puts "##values::#{result}" i = 0 result.each do |v| res[j] ||= {} res[j][m[i]] = v i += 1 end j += 1 end n += 1 end res end def pgAnswerMap(answer) res = {} m = {} i = 0 answer.each do |result| # puts "##values::#{result}" result.each do |k, v| res[i] ||= {} res[i][k.to_sym] = v end i += 1 end res end end end end