class Soapforce::QueryResult
Attributes
raw_result[R]
Public Class Methods
new(result={})
click to toggle source
# File lib/soapforce/query_result.rb, line 7 def initialize(result={}) if result.is_a?(Soapforce::Result) @raw_result = result.to_hash else @raw_result = result end @result_records = [] # Default for 0 size response. @key_type = @raw_result.key?(:size) ? :symbol : :string records_key = key_name("records") if @raw_result[records_key] @result_records = @raw_result[records_key] # Single records come back as a Hash. Wrap in array. if @result_records.is_a?(Hash) @result_records = [@result_records] end end # Convert to SObject type. @result_records.map! {|hash| SObject.new(hash) } end
Public Instance Methods
done?()
click to toggle source
# File lib/soapforce/query_result.rb, line 48 def done? @raw_result[key_name("done")].nil? ? true : @raw_result[key_name("done")] end
each(&block)
click to toggle source
Implmentation for Enumerable mix-in.
# File lib/soapforce/query_result.rb, line 36 def each(&block) @result_records.each(&block) end
key_name(key)
click to toggle source
# File lib/soapforce/query_result.rb, line 62 def key_name(key) if @key_type == :symbol key.is_a?(String) ? key.snakecase.to_sym : key else key.to_s end end
map(&block)
click to toggle source
# File lib/soapforce/query_result.rb, line 40 def map(&block) @result_records.map(&block) end
method_missing(method, *args, &block)
click to toggle source
# File lib/soapforce/query_result.rb, line 56 def method_missing(method, *args, &block) if @result_records.respond_to?(method) @result_records.send(method, *args, &block) end end
query_locator()
click to toggle source
# File lib/soapforce/query_result.rb, line 52 def query_locator @raw_result[key_name("queryLocator")] end
records()
click to toggle source
# File lib/soapforce/query_result.rb, line 31 def records @result_records end
size()
click to toggle source
# File lib/soapforce/query_result.rb, line 44 def size @raw_result[key_name("size")].to_i || 0 end