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