Method: Remi::DataSource::Salesforce#to_dataframe

Defined in:
lib/remi/data_source/salesforce.rb

#to_dataframeObject



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/remi/data_source/salesforce.rb', line 47

def to_dataframe
  @logger.info "Converting salesforce query results to a dataframe"

  hash_array = {}
  raw_result['batches'].each do |batch|
    next unless batch['response']

    batch['response'].each do |record|
      record.each do |field, value|
        next if ['xsi:type','type'].include? field
        (hash_array[field.to_sym] ||= []) << case value.first
          when Hash
            value.first["xsi:nil"] == "true" ? nil : value.first
          else
            value.first
          end
      end
    end

    # delete raw result at end of processing to free memory
    batch['response'] = nil
  end

  Daru::DataFrame.new hash_array, order: hash_array.keys
end