Module: RQuery::ClassMethods

Defined in:
lib/rquery-activerecord.rb

Instance Method Summary collapse

Instance Method Details

#rquery(cmd = nil) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/rquery-activerecord.rb', line 5

def rquery(cmd=nil)
  if cmd
    ar_statement = ''
    # TODO includes_clause(JSON.parse(cmd[:includes])) if cmd[:includes]
    # TODO joins_clause(JSON.parse(cmd[:joins])) if cmd[:joins]
    ar_statement += where_clause(JSON.parse(cmd[:where])) if cmd[:where]
    ar_statement += or_clause(JSON.parse(cmd[:or])) if cmd[:or]
    ar_statement += order_clause(JSON.parse(cmd[:order])) if cmd[:order]
    ar_statement += limit_clause(cmd[:limit]) if cmd[:limit]
    ar_statement += skip_clause(cmd[:skip]) if cmd[:skip]
    ar_statement = (ar_statement == '' ? {:results => eval('all').to_a} : {:results => eval(ar_statement[1..-1]).to_a})
    ar_statement = count_clause(cmd[:count], ar_statement) if cmd[:count]
    ar_statement[:results].present? || ar_statement[:count].present? ? ar_statement : {}
  else
    {}
  end
end