class SoqlBuilder::Interface

Public Class Methods

new(type:) click to toggle source
# File lib/soql_builder/interface.rb, line 7
def initialize(type:)
  @query_klass = Module.const_get("SoqlBuilder::#{type.capitalize}Query")
  @query_params = {
    fields: [],
    subqueries: [],
    object_table: '',
    where: '',
    limit: ''
  }
end

Public Instance Methods

add_subquery(table:, fields: []) click to toggle source
# File lib/soql_builder/interface.rb, line 35
def add_subquery(table:, fields: [])
  subquery = { object_table: table, fields: fields }
  @query_params[:subqueries] << subquery
  self
end
clean() click to toggle source
# File lib/soql_builder/interface.rb, line 22
def clean
  @query_params[:fields] = []
  @query_params[:subqueries] = []
  @query_params[:object_table] = ''
  @query_params[:where] = ''
  @query_params[:limit] = ''
end
fields(fields = []) click to toggle source
# File lib/soql_builder/interface.rb, line 30
def fields(fields = [])
  @query_params[:fields] = fields
  self
end
from(table) click to toggle source
# File lib/soql_builder/interface.rb, line 41
def from(table)
  @query_params[:object_table] = table
  self
end
limit(limit_number) click to toggle source
# File lib/soql_builder/interface.rb, line 51
def limit(limit_number)
  @query_params[:limit] = limit_number.to_s
end
query() click to toggle source
# File lib/soql_builder/interface.rb, line 18
def query
  @query_klass.structure_query(@query_params)
end
where(where_condition) click to toggle source
# File lib/soql_builder/interface.rb, line 46
def where(where_condition)
  @query_params[:where] = where_condition
  self
end