class ActiveForce::SelectBuilder

Attributes

nested_query_fields[R]
non_nested_query_fields[R]
query[R]
selected_fields[R]

Public Class Methods

new(selected_fields, query) click to toggle source
# File lib/active_force/select_builder.rb, line 6
def initialize(selected_fields, query)
  @query = query
  @selected_fields = selected_fields
  @non_nested_query_fields = []
  @nested_query_fields = []
end

Public Instance Methods

parse() click to toggle source
# File lib/active_force/select_builder.rb, line 13
def parse
  selected_fields.each do |field|
    case field
    when Symbol
      non_nested_query_fields << query.mappings[field]
    when Hash
      populate_nested_query_fields(field)
    when String
      non_nested_query_fields << field
    end
  end
  {non_nested_query_fields: non_nested_query_fields, nested_query_fields: nested_query_fields}
end

Private Instance Methods

populate_nested_query_fields(field) click to toggle source
# File lib/active_force/select_builder.rb, line 29
def populate_nested_query_fields(field)
  field.each do |key, value|
    case value
    when Symbol
      field[key] = [value]
    when Hash
      raise ArgumentError, 'Nested Hash is not supported in select statement, you may wish to use an Array'
    end
  end
  nested_query_fields << field
end