Class: Remi::Parser::Salesforce
- Inherits:
-
Remi::Parser
- Object
- Remi::Parser
- Remi::Parser::Salesforce
- Defined in:
- lib/remi/data_subjects/salesforce.rb
Overview
Salesforce parser
Instance Attribute Summary
Attributes inherited from Remi::Parser
#context, #field_symbolizer, #fields, #logger
Instance Method Summary collapse
-
#parse(sf_extract) ⇒ Remi::DataFrame
The data converted into a dataframe.
Methods inherited from Remi::Parser
Constructor Details
This class inherits a constructor from Remi::Parser
Instance Method Details
#parse(sf_extract) ⇒ Remi::DataFrame
Returns The data converted into a dataframe.
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/remi/data_subjects/salesforce.rb', line 102 def parse(sf_extract) logger.info 'Parsing salesforce query results' hash_array = {} sf_extract.data['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 Remi::DataFrame.create(:daru, hash_array, order: hash_array.keys) end |