15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/slim_scrooge/slim_scrooge.rb', line 15
def find_by_sql_with_slim_scrooge(sql, binds = [])
return find_by_sql_with_or_without_arel(sql, binds) if sql.is_a?(Array)
if @@slim_use_arel
callsite_key = SlimScrooge::Callsites.callsite_key(sql.froms.map(&:name).join)
else
callsite_key = SlimScrooge::Callsites.callsite_key(sql)
end
if SlimScrooge::Callsites.has_key?(callsite_key)
find_with_callsite_key(sql, callsite_key, binds)
elsif callsite = SlimScrooge::Callsites.create(sql, callsite_key, name) if @@slim_use_arel
rows = connection.select_all(sanitize_sql(sql), "#{name} Load SlimScrooged 1st time", binds)
else
rows = connection.select_all(sql, "#{name} Load SlimScrooged 1st time")
end
rows.collect! {|row| instantiate(MonitoredHash[row, {}, callsite])}
else
find_by_sql_with_or_without_arel(sql, binds)
end
end
|