8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/lcp_ruby/grouped_query/builder.rb', line 8
def apply(scope, presenter_def, model_def)
group_by = normalize_group_by(presenter_def.group_by_config)
columns = presenter_def.table_columns
conn = scope.connection
scope = apply_joins(scope, group_by, model_def)
select_parts = build_select_parts(columns, group_by, model_def, conn)
scope = scope.select(select_parts.join(", "))
group_exprs = build_group_expressions(group_by, model_def, conn)
scope = scope.group(group_exprs.join(", "))
scope = apply_having(scope, presenter_def.having_conditions, columns, model_def, conn)
scope
end
|