Class: SPQuery

Inherits:
Object
  • Object
show all
Defined in:
lib/seek_party/models/sp_query.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queries: {}, params: nil) ⇒ SPQuery

Returns a new instance of SPQuery.



4
5
6
7
# File 'lib/seek_party/models/sp_query.rb', line 4

def initialize(queries: {}, params: nil)
  @queries = queries
  @params = params
end

Instance Attribute Details

#paramsObject

Returns the value of attribute params.



2
3
4
# File 'lib/seek_party/models/sp_query.rb', line 2

def params
  @params
end

#queriesObject

Returns the value of attribute queries.



2
3
4
# File 'lib/seek_party/models/sp_query.rb', line 2

def queries
  @queries
end

Instance Method Details

#add_attribute_query(attribute, query) ⇒ Object



9
10
11
# File 'lib/seek_party/models/sp_query.rb', line 9

def add_attribute_query(attribute, query)
  @queries[attribute] << query
end

#build_final_queryObject



17
18
19
20
21
22
23
24
25
26
# 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) ⇒ Object



28
29
30
# 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) ⇒ Object



13
14
15
# File 'lib/seek_party/models/sp_query.rb', line 13

def set_attribute_query(attribute, query)
  @queries[attribute] = query
end