class BigQuery::QueryResult
Attributes
total_bytes_processed[R]
Public Class Methods
new(result)
click to toggle source
# File lib/bigquery/query_result.rb, line 5 def initialize(result) @total_bytes_processed = result['totalBytesProcessed'].to_i make_rows(result) end
Private Instance Methods
make_rows(res)
click to toggle source
# File lib/bigquery/query_result.rb, line 11 def make_rows(res) schema = res['schema']['fields'] if res['totalRows'].to_i > 0 res['rows'].each {|row| self.push(row_hash(row, schema)) } end end
parse_value(value, type)
click to toggle source
# File lib/bigquery/query_result.rb, line 27 def parse_value(value, type) case type when 'STRING' return value when 'INTEGER' return value.to_i when 'FLOAT' return value.to_f when 'BOOLEAN' return (value.upcase == 'TRUE') ? true : false when 'TIMESTAMP' t = value.to_f.to_i return Time.at(t) else raise 'unknown data type: #{type}' end end
row_hash(row, schema)
click to toggle source
# File lib/bigquery/query_result.rb, line 18 def row_hash(row, schema) rh = {} row['f'].each_with_index do |field, index| name = schema[index]['name'] rh[name] = parse_value(field['v'], schema[index]['type']) end rh end