24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/my_chart/dsl/draw.rb', line 24
def grouped cfg = nil
@grouped ||= {}
return @grouped unless cfg
x = get_x cfg.from
grp_m = check_overwrite_group_method cfg.x
xy = (@grouped[[cfg.x, cfg.from]] ||= (x.group_by &grp_m))
xy = (@grouped[[cfg.x, cfg.keys, cfg.from]] ||= (xy.complete_keys cfg.keys)) if cfg.keys
xy = xy.sort(cfg) if cfg.asc or cfg.desc
xy = xy.limit(cfg) if cfg.first or cfg.last
return xy unless cfg.y
grp_m = check_overwrite_group_method cfg.y
@grouped[[cfg.x, cfg.y, cfg.keys, cfg.from]] ||= xy.group_by(&grp_m)
end
|