Module: RailsSimpleSearch::SqlHandler

Defined in:
lib/sql_handler.rb

Instance Method Summary collapse

Instance Method Details

#conditionsObject



9
10
11
12
# File 'lib/sql_handler.rb', line 9

def conditions
  run_criteria
  @conditions
end

#initObject



4
5
6
7
# File 'lib/sql_handler.rb', line 4

def init
  @table_name = @model_class.table_name
  @joins = {}
end

#joinsObject



14
15
16
17
# File 'lib/sql_handler.rb', line 14

def joins
  run_criteria
  @joins_str
end

#runObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/sql_handler.rb', line 19

def run
  run_criteria

  query = @model_class.joins(@joins_str)
  if @conditions
    query = query.where(@conditions)
  end

  if @config[:paginate]
    @count = query.count
    offset = [((@page || 0) - 1) * @config[:per_page], 0].max
    limit = @config[:per_page]
  else
    offset = @config[:offset]
    limit = @config[:limit]
  end

  query.order(@order) if @order
  query.select("distinct #{@model_class.table_name}.*").offset(offset).limit(limit)
end