class SPQuery

Attributes

params[RW]
queries[RW]

Public Class Methods

new(queries: {}, params: nil) click to toggle source
# File lib/seek_party/models/sp_query.rb, line 4
def initialize(queries: {}, params: nil)
  @queries = queries
  @params = params
end

Public Instance Methods

add_attribute_query(attribute, query) click to toggle source
# File lib/seek_party/models/sp_query.rb, line 9
def add_attribute_query(attribute, query)
  @queries[attribute] << query
end
build_final_query() click to toggle source
# File lib/seek_party/models/sp_query.rb, line 17
def build_final_query
  return if @queries.blank?

  @queries.map { |key, value|
    if key == @queries.keys.first
      value
    else
      or_and(value)
    end }.sum
end
or_and(value) click to toggle source
# File lib/seek_party/models/sp_query.rb, line 28
def or_and(value)
  @params[:search].present? ? " OR #{value}" : " AND #{value}"
end
set_attribute_query(attribute, query) click to toggle source
# File lib/seek_party/models/sp_query.rb, line 13
def set_attribute_query(attribute, query)
  @queries[attribute] = query
end