Module: MyChart::Dsl::Draw

Included in:
Chart
Defined in:
lib/my_chart/dsl/draw.rb

Defined Under Namespace

Classes: ChartCmdARGV

Instance Method Summary collapse

Instance Method Details

#chartsObject



20
21
22
# File 'lib/my_chart/dsl/draw.rb', line 20

def charts
  @charts ||= {}
end

#check_overwrite_group_method(method_id) ⇒ Object



41
42
43
# File 'lib/my_chart/dsl/draw.rb', line 41

def check_overwrite_group_method method_id
  group_by_methods[method_id] || method_id
end

#grouped(cfg = nil) ⇒ Object



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