class Qmetrics::Response

Attributes

description[R]
qmetrics_version[R]
result[R]
status[R]
time_elapsed[R]

Public Class Methods

new(qmetrics_result,api_methods) click to toggle source
# File lib/qmetrics/response.rb, line 5
def initialize(qmetrics_result,api_methods)
  @api_methods        = api_methods
  @status             = qmetrics_result["result"][0][1]
  @description        = qmetrics_result["result"][1][1]
  @time_elapsed       = "#{qmetrics_result["result"][2][1]}ms"
  @qmetrics_version   = qmetrics_result["result"][3][1]

  qmetrics_result.delete("result")
  @result = zip_results(qmetrics_result)
end

Private Instance Methods

clean_output(output) click to toggle source
# File lib/qmetrics/response.rb, line 41
def clean_output(output)
  output.map { |n| n.select { |k, v| !(junk_data?(k) && junk_data?(v)) } }
end
hashify_pairs(results) click to toggle source
# File lib/qmetrics/response.rb, line 45
def hashify_pairs(results)
  results.inject({}) do |a, v|
    a.merge(purge_entities(v.first) => purge_entities(v.last))
  end
end
junk_data?(value) click to toggle source
# File lib/qmetrics/response.rb, line 60
def junk_data?(value)
  ["...","","-"].include? value
end
purge_entities(value) click to toggle source
# File lib/qmetrics/response.rb, line 55
def purge_entities(value)
  [' ', '<'].each{|t| value.gsub!(t,"")}
  value.strip
end
purge_entities_arr(values) click to toggle source
# File lib/qmetrics/response.rb, line 51
def purge_entities_arr(values)
  values.map {|n| purge_entities(n) }
end
translate_method_name(java_method_name) click to toggle source
# File lib/qmetrics/response.rb, line 26
def translate_method_name(java_method_name)
  @api_methods.invert[java_method_name]
end
zip_arrs(r) click to toggle source
# File lib/qmetrics/response.rb, line 30
def zip_arrs(r)
  r.first.size > 2 ? clean_output(zip_keys_and_values(r)) : hashify_pairs(r)
end
zip_keys_and_values(results) click to toggle source
# File lib/qmetrics/response.rb, line 34
def zip_keys_and_values(results)
  h = purge_entities_arr(results.first)
  results[1..results.size].inject([]) do |a, v|
    a.push(Hash[h.zip(purge_entities_arr(v))])
  end
end
zip_results(qmetrics_result) click to toggle source
# File lib/qmetrics/response.rb, line 18
def zip_results(qmetrics_result)
  @result = {}
  qmetrics_result.each do |k, v|
    @result[translate_method_name(k)] = zip_arrs(v)
  end
  @result
end